我想在ASP.NET網站上實現表單身份驗證,站點應該在數據庫上尋找用戶以獲取一些數據,然後使用LDAP(Active Directory)進行身份驗證以驗證用戶/密碼組合。實現混合ASP.NET表單驗證(AD + DB)的最佳方式是什麼?
之後,我需要保持一個類的實例,代表用戶以各種形式使用它。
我試圖做一個登錄控制之前,檢查以前的條件,並做一個AuthenticateEventArgs.Authenticated = true
並將該對象放在會話:Session ["user"] = authenticatedUser;
,但我有問題同步他們兩個(會話過期之前身份驗證cookie和當頁面試圖使用現在不存在的會話對象時,我得到了NullReferenceExceptions)。
這是完成此操作的最佳方法嗎?有什麼方法可以將會話超時與Cookie壽命同步嗎?用戶對象應該以其他方式保存嗎?我有沒有錯過這一點?
謝謝。
更新: 我不能使用windows auth提供程序,因爲該網站應該從外面訪問priate網絡。
HTTPModule?你能告訴我更多關於它嗎? – albertein 2008-10-15 22:38:56
會在Global.asax上做Session_End嗎? – albertein 2008-10-15 22:46:04
我會在Application.BeginRequest中global.asax HttpModules基本上是將global.asax編譯爲單獨的dll。適合模塊化 – FlySwat 2008-10-15 22:49:09