我们有一位最近更名的用户。
假设旧用户名是old.name,新用户名是new.name。
使用新用户名编辑AD和logout / login中的详细信息后,我们的ASP.NET应用程序将显示旧名称。
普通的ASP.NET,没有使用Windows身份验证的MVC。
获取用户名的代码是:
WindowsPrincipal wp = (WindowsPrincipal)HttpContext.Current.User;
String userName = wp.Identity.Name.Substring(wp.Identity.Name.IndexOf("\\") + 1);
这将返回old.name,而不是new.name。
我检查了IIS日志文件,这些文件显示了新名称:
2011-04-05 11:41:44 W3SVC1 MARS 10.57.1.64 GET /eft/Default.aspx - 80 - 10.57.0.161 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E) 401 2 2148074254
2011-04-05 11:41:44 W3SVC1 MARS 10.57.1.64 GET /eft/Default.aspx - 80 SANOMABP\new.name 10.57.0.161 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E) 200 0 0
我们已经重新启动了应用程序池,我们检查了AD数据,而且我们没有更多的想法可能出错。