2013-12-18 86 views
2

我正在使用Windows身份驗證託管ASP.Net應用程序,我需要獲取各種個性化任務的用戶名。在主機上的目錄設置爲具有Windows身份驗證和web.config文件還具有: -用戶在託管ASP.Net應用程序中難以區分

<authentication mode="Windows"> 
</authentication> 

。我曾嘗試在應用程序中的各種方法,結果如下,以獲取用戶名: -

Source               Result 
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name 'EZ\urlname_a' 
System.Environment.UserName         'NETWORK SERVICE' 
System.Web.HttpContext.Current.User.Identity.Name    '' 
this.Request.ServerVariables["LOGON_USER"]      '' 
this.Request.ServerVariables["AUTH_USER"]      '' 
this.User.Identity.Name          '' 

感謝答案herehere,並here,等等。這些都不能區分輸入的各種用戶名。

還有什麼我可以嘗試在代碼中獲取名稱(或名稱的一些代理)?有什麼我可以檢查在web.config?或者,如果我需要與主持人討論這個問題,我是否可以提出任何明智的問題?

編輯我已經使用主機的IIS對話設置了應用程序目錄和.Net版本。

+0

你是否使用IIS託管? – Amber

+0

@琥珀,是的,我相信。 –

+0

您應該檢查您是否僅在IIS管理器中啓用Windows身份驗證。因爲它目前使用'網絡服務'(推測)應用程序池設置。 – Amber

回答

1

您需要將IIS設置爲僅使用Windows身份驗證,然後使用Page.User.Identity.Name或類似命令來獲取Windows用戶名。

在「身份驗證」窗格中,將Windows身份驗證設置爲「已啓用」並禁用匿名身份驗證。