繁体   English   中英

ASP.net:IIS 7.5中的HttpContext.Current.User.Identity.Name为空,但在IIS Express上不是

[英]ASP.net: HttpContext.Current.User.Identity.Name is empty in IIS 7.5 but not on IIS Express

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

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

为什么会这样,如何缓解呢?

注意:这不是“ HttpContext.Current.User.Identity.Name为空 ”的重复,因为该问题与Visual Studio中内置的Web服务器有关。

注意2:在我的情况下,匿名访问尚未关闭。 如果确实是造成此问题的原因,您能否解释原因?

HttpContext.Current.User.Identity.Name使用LDAP确定Windows用户名。

这之所以有效,是因为关闭匿名访问后,您的计算机需要使用Windows标识“登录”才能访问该站点(非匿名)。 因此,该站点知道您是谁,并且可以返回正确的数据。

如果保留了匿名访问权限,则您的计算机将使用最快/最简便的访问方法(匿名)并将网页返回给您。 IIS然后只知道您是匿名的,因此无法给您起一个名字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM