Asp.net
將 Forms 身份驗證與 Windows 身份驗證混合使用
我有一個(ASP.NET 3.5)Intranet 應用程序,它被設計為使用表單身份驗證(以及預設的 aspnet 會員系統)。我還將有關使用者的其他資訊儲存在另一個表中,該表與 aspnet_users 表共享其主鍵。
對於屬於我們域的使用者,我將他們的域帳戶名儲存在輔助使用者表中,並且我想自動登錄其域帳戶名與儲存在表中的名稱匹配的使用者。
我已經閱讀了可用的指南 - 它們都來自兩年或更長時間,並假設您能夠在允許您提取域帳戶名稱的單獨登錄頁面上啟動 Windows 身份驗證。不過,據我所知,這在 IIS7 中是不可能的(整體身份驗證方法適用於所有頁面,不能有選擇地停用,兩種身份驗證方法不能應用於同一頁面)。
有沒有辦法讓 IIS 通過請求使用者的 windows 域帳戶名?我不需要正確的 AD 身份驗證,只需要域名。
事實上,你可以做到。@dr_draik 有點晚了,但這突然出現在我的Google搜尋結果中,所以我想我會分享一些知識。
如果您處於經典模式 - 同時啟用 Windows 和 Forms 身份驗證。你會收到一個警告,說你不能同時做這兩個,但你可以忽略它。然後,您可以探索各種屬性,例如程式碼:
HttpContext.Current.Request.ServerVariables["LOGON_USER"]並從那裡獲取使用者名。
如果您處於集成模式 - 4021905 無法同時使用基於 IIS7 挑戰和基於登錄重定向的身份驗證會導致IIS 7.0 兩級身份驗證與表單身份驗證和 Windows 身份驗證,這是一個允許您有選擇地更改身份驗證的模組不同的頁面。