C# 在iis windows authentication身份驗證下,如何實現域用戶自動登錄


前言:
該博文產生的背景是有個項目在客戶那部署方式為iis windows身份驗證,而客戶不想每次登錄系統都要輸入帳
號和密碼來登錄。因此需要得到域用戶,然后進行判斷該用戶是否可以進入系統。

解決方法:見如下代碼。首先要說明下情況,我這邊沒有客戶的環境,雖然自己也搞了個測試服務器,在發布項
目時使用了windows身份驗證,但是和客戶那的環境還是不同。最終的結果就是取得的用戶名永遠是測試服務器
的那台信息。在網上尋找資料時,看到的
部分答案就是string userAcc = System.Web.HttpContext.Current.User.Identity.Name.Trim();來獲取的,下面的
代碼加了一下其它的方法進去。

 string userAcc = System.Web.HttpContext.Current.Request.ServerVariables["LOGON_USER"].Trim();
            if (userAcc == "")
                userAcc = User.Identity.Name.Trim();
  
            int len = userAcc.IndexOf('\\', 0);
            userAcc = userAcc.Substring(len + 1, userAcc.Length - len - 1);

在實際開發中遇到的問題

1:在獲取用戶名,不管用什么用戶名登錄,只能獲取同一個用戶名。

原因:客戶的域服務器跟部署網站的服務器不是同一個服務,而且域服務器只分配給部署網站的服務器一個用戶名,用來登錄域服務器,

         所以在獲取的時候只能獲取這個用戶名 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM