![](/img/trans.png)
[英]ASP.Net MVC 5 - Correct way to access HttpContext.Current.User outside of controller?
[英]ASP.Net Httpcontext.Current.User shows last user who spawned thread
我面对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?
任何帮助将非常感激
天哪,这真是个愚蠢的问题! 我通过撕裂web.config找到了答案。
原来缓存是个问题。 我在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>
禁用缓存修复了! 真是个奇怪的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.