域名是否会在HttpContext.Current.User.Identity中缺席?

时间:2012-02-15 21:35:54

标签: asp.net .net-4.0 httpcontext

我正在使用有限数量的用户在公司内部使用的简单单页ASP.Net站点。

在其中,我使用HttpContext.Current.User.Identity Domain \ ActiveDirectoryUserName 格式获取记录用户的名称,并根据此帖中的答案建议删除域名:{{3并将其显示在 Hello xyz

等标签中

是否会出现HttpContext.Current.User.Identity中域名不存在的情况?


更新:此站点使用Windows身份验证

1 个答案:

答案 0 :(得分:4)

首先,如果用户是匿名用户,您将获得用户身份的空字符串。

其次,当您使用支持域的身份验证源时,只有一个域存在。如果您在IIS下使用Windows集成身份验证,则域将始终存在于每个非匿名用户身份中。如果您正在使用表单身份验证或其他身份验证源,则提供程序可以完全控制用户身份的格式。


正如您所指出的那样,您使用的是Windows集成身份验证,只要用户通过身份验证,您就会拥有一个域。如果您允许匿名访问,则应在尝试解析其名称之前先检查HttpContext.Current.User.IsAuthenticated