和利用資料庫進行驗證類似,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...