2012-02-15 48 views
1

我正在一個簡單的一頁ASP.Net網站在公司內由有限的用戶使用。域名是否會從HttpContext.Current.User.Identity中缺失?

在這裏面,我用HttpContext.Current.User.Identity格式域\ ActiveDirectoryUserName來獲得登錄用戶名和剝出域名在這個職位的答案的建議:Built-in helper to parse User.Identity.Name into Domain\Username和像標籤顯示它喂XYZ

還能有一個場景,其中該域名將不會出現在HttpContext.Current.User.Identity


UPDATE:本網站使用Windows身份驗證

回答

4

首先,如果用戶是匿名的,你會得到用戶的身份一個空字符串。

其次,當您使用支持域的驗證源時,只有一個域存在。如果您在IIS下使用Windows集成身份驗證,則該域將始終存在於每個非匿名用戶身份中。如果您使用表單身份驗證或其他身份驗證源,則提供程序可以完全控制用戶身份的格式。


正如你已經表明你正在使用Windows集成身份驗證,你總是有一個域名,提供用戶進行身份驗證。如果你允許匿名訪問,你應該首先檢查HttpContext.Current.User.IsAuthenticated,然後再試圖解析他們的名字。