ASP.net:HttpContext.现在的使用者身份名称在IIS 7.5中为空,但在IIS Express中不为空

本文关键字:IIS Express 但在 HttpContext net 身份 使用者 ASP | 更新日期: 2023-09-27 18:00:39

在我的ASP.net web应用程序中,在用户通过表单身份验证后,我试图从HttpContext.Current.User.Identity.Name读取用户名。

当我在运行IIS Express的个人计算机上运行此程序时,它运行得很好。当我在IIS 7.5下的服务器上运行它时,此表达式的计算结果始终为string.Empty

为什么会出现这种情况,以及如何减轻这种情况?

注意:这不是"HttpContext.Current.User.Identity.Name为空"的重复,因为这个问题是关于Visual Studio中内置的web服务器的。

注2:在我的情况下,匿名访问没有被关闭。如果这确实是问题的原因,你能解释一下为什么吗?

ASP.net:HttpContext.现在的使用者身份名称在IIS 7.5中为空,但在IIS Express中不为空

HttpContext。现在的使用者身份Name使用LDAP来确定您的windows用户名。

这是因为当关闭匿名访问时,您的计算机需要使用windows标识"登录"才能访问该网站(而不是匿名)。正因为如此,网站知道你是谁,并且可以返回正确的数据。

如果保留匿名访问,您的计算机将使用最快/最简单的访问方法(匿名)并将网页返回给您。IIS只知道你是匿名的,所以不能给你起名字。