【发布时间】:2009-10-02 08:20:57
【问题描述】:
在 Mike O'Brien 的这篇非常有用的总结 Identities for different IIS7 Authentication Configurations 中,他概述了 IIS 7 如何处理不同设置的身份验证(我找不到 IIS 6 的类似总结,这是我们正在使用的版本)。
我们已将身份验证设置为集成 Windows 身份验证;匿名访问已关闭,我没有使用模拟。 asp.net 应用程序位于 Intranet 中,但我无法控制(也很少知道)有多少域,它们如何相互交互等等。根据上面的文章,我应该获得所有三个相同的用户信息:
Thread.CurrentPrincipal.Identity
HttpContext.Current.User.Identity
Request.LogonUserIdentity
我确实获取了正确的用户,但大小写与 AD 名称不同。所以我的问题是:如果
Thread.CurrentPrincipal.Identity
(这是我正在使用的)提供正确的 AD 名称,但显示与 AD 不同的大小写,这很可能是 Thread.CurrentPrincipal.Identity 的问题,与 Intranet/域设置或 IIS 6 之间的差异& IIS 7?
(对于这个问题的含糊性质表示歉意:我只是想寻找建议,以寻找最佳位置和/或输入关于使用 Thread.CurrentPrincipal.Identity 是否存在固有的不明智之处)。
编辑: IIS 6 更新 - 根据此链接
http://msdn.microsoft.com/en-us/library/aa302377.aspx
我也应该得到 IIS 6 的 DOMAIN\username,所以没有区别。该问题是否与 Kerberos/NTLM 如何与 IIS 交互有关?
编辑#2:问题可以总结如下:
我显示为例如AD 中的 DOMAIN\joebloggs。我以 joebloggs 身份登录。但是我使用 Thread.CurrentPrincipal.Identity 从(成功)身份验证中获得的凭据显示 DOMAIN\JoeBloggs。这可能是从哪里来的?
【问题讨论】:
标签: asp.net iis windows-authentication