非常奇怪的问题我正面临ASP.Net和当前用户。
使用ASP.Net 4.0。
出于某种原因,HttpContext.Current.User.Identity.Name将用户身份报告为最后一个到达服务器的人。换句话说,它以某种方式并且出于某种原因缓存了身份。
见下: 使用我自己的用户名登录计算机1,它显示正常。 使用其他用户名登录计算机2,它显示正常。
刷新计算机1上的浏览器,它显示计算机2凭据!!!
我已经尝试了一切!我有一个自定义角色提供程序,我关闭并尝试了所有可能的设置。目前我的网络配置中有两行应该可以正常工作。
我在IIS中检查了以下内容: 匿名被禁用 Windows已启用 禁用会话状态!
要测试用户名,我这样做:
lblUserName.Text = HttpContext.Current.User.Identity.Name;
任何想法我做错了什么? 这可能是因为我使用的是NTLM而不是Kerberos吗?
非常感谢任何帮助
答案 0 :(得分:1)
原来缓存是个问题。我在web.config中启用了以下内容:
<caching enabled="false"> <profiles> <add duration="72:00:00" location="Client" extension=".aspx" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add duration="72:00:00" location="Client" extension=".axd" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add duration="72:00:00" location="Client" extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add duration="72:00:00" location="Client" extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add duration="72:00:00" location="Client" extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add duration="72:00:00" location="Client" extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> <add duration="72:00:00" location="Client" extension=".gif" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> </profiles> </caching>
禁用缓存修复了它! 多么奇怪的问题。