前言:
該博文產生的背景是有個項目在客戶那部署方式為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:在獲取用戶名,不管用什么用戶名登錄,只能獲取同一個用戶名。
原因:客戶的域服務器跟部署網站的服務器不是同一個服務,而且域服務器只分配給部署網站的服務器一個用戶名,用來登錄域服務器,
所以在獲取的時候只能獲取這個用戶名 。