繁体   English   中英

ASP.Net Httpcontext.Current.User显示生成线程的最后一个用户

[英]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.

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