ldap 身份驗證的通用步驟

2021-07-29 11:59:52 字數 924 閱讀 8643

和利用資料庫進行驗證類似,ldap中也是利用登陸名和密碼進行驗證,ldap中會定義乙個屬性password,用來存放使用者密碼,而登陸名使用較多的都是mail位址。那怎麼樣才能正確的用ldap進行身份驗證呢,下面是乙個正確而又通用的步驟:

1. 從客戶端得到登陸名和密碼。注意這裡的登陸名和密碼一開始並沒有被用到。

2. 先匿名繫結到ldap伺服器,如果ldap伺服器沒有啟用匿名繫結,一般會提供乙個預設的使用者,用這個使用者進行繫結即可。

3. 之前輸入的登陸名在這裡就有用了,當上一步繫結成功以後,需要執行乙個搜尋,而filter就是用登陸名來構造,形如: "(|(uid=$login)(mail=$login))" ,這裡的login就是登陸名。搜尋執行完畢後,需要對結果進行判斷,如果只返回乙個entry,這個就是包含了該使用者資訊的entry,可以得到該entry的dn,後面使用。如果返回不止乙個或者沒有返回,說明使用者名稱輸入有誤,應該退出驗證並返回錯誤資訊。

4. 如果能進行到這一步,說明用相應的使用者,而上一步執行時得到了使用者資訊所在的entry的dn,這裡就需要用這個dn和第一步中得到的password重新繫結ldap伺服器。

5. 執行完上一步,驗證的主要過程就結束了,如果能成功繫結,那麼就說明驗證成功,如果不行,則應該返回密碼錯誤的資訊。

這5大步就是基於ldap的乙個 「兩次繫結」 驗證方法。

[csharp]view plain

copy

"font-size:18px;"

>

bool

checkresult = 

false

;  try

}  response.write("認證結果:"

+ checkresult.tostring());  

}  catch

(system.exception ex)  

Forms 身份驗證

配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...

WebService身份驗證

web service身份驗證解決方案一 通過通過soap header身份驗證。1.我們實現乙個用於身份驗證的類,檔名mysoapheader.cs mysoapheader類繼承自system.web.services.protocols.soapheader。且定義了兩個成員變數,userna...

WebServices身份驗證

最近遇到乙個問題,暴露在網路上的web service如何做身份驗證,而不被其他人說是用。mysoapheader.cs類 using system using system.collections.generic using system.linq using system.web namespa...