【问题标题】:.NET returning incorrect username.NET 返回错误的用户名
【发布时间】:2013-05-09 14:31:36
【问题描述】:

几周前我创建帐户时出现拼写错误。我更改了帐户,他们可以使用新名称登录域。但是,我们内部有一个 Web 应用程序仍在使用错误的名称。

.net 应用程序使用

System.Security.Principal.WindowsIdentity.GetCurrent().Name;

它给出了旧名称。

如果我使用

Environment.UserName

我得到了正确的新名称。我在 AD 中错过了什么?有没有地方我可以更改名称,这将导致 System.Security.Principal.WindowsIdentity.GetCurrent().Name;给出正确的名字?

我没有使用 .net 的经验,所以如果问题有一个明显的答案,我很抱歉。

【问题讨论】:

  • 有没有可能缓存在 Web 应用程序/服务器中?
  • 每个用户都有两个登录名:User logon nameUser logon name (pre-Windows 2000)。确保你已经更正了这两个。
  • 很可能就是这种情况。我会在下班后的几个小时内尝试这样做(以防万一出现问题)
  • 除此之外,名称可以被服务器缓存。见KB946358
  • @Alex 我确实有。这似乎仍然是最合乎逻辑的解释。 Windows 身份返回域\用户名,这是 Windows 2000 之前的登录名。但我正在查看它,因为我键入并且名称匹配。

标签: c# .net windows-authentication


【解决方案1】:

在这里查看答案:

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/27e42d4a-6452-4840-bbf2-abbc16e22557

添加密钥:

“HKLM/System/CurrentControlSet/Control/Lsa/LsaLookupCacheMaxSize=0”

缓存到您的注册表。我认为重新启动 IIS 不会解决此问题。

【讨论】:

  • 谢谢戴夫。我尝试了该修复,但它仍然给出错误的用户名。
猜你喜欢
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多