【问题标题】:Thread.CurrentPrincipal.Identity vs. Active Directory entryThread.CurrentPrincipal.Identity 与 Active Directory 条目
【发布时间】: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


    【解决方案1】:

    本例中的用户名由客户端提供。身份验证机制验证可以确认身份,但它不会将用户提供的名称替换为 AD 中存储的名称,因此没有理由期望大小写匹配。

    【讨论】:

    • @Nicole:谢谢你的回复。但是“客户端”到底是什么意思:IIS,操作系统......?我的问题是“用户提供的名称”似乎既不是 AD 名称,也不是登录名(即用户键入的内容),因为更改其中一个或两个都不能解决问题,即使 IIS 重新启动,缓存清空,使用不同的机器等等。
    • ...并且根据 Mike O'Brien 链接,我应该 - 对于我的 IIS 设置 - 获取 DOMAIN\username 或 HOST\username (我认为,这意味着那些元素)。
    • Mike O'Brien 的文章中没有提到任何关于套管的内容,所以我不确定您从哪里得知它有任何相关性。
    • 至于“客户端”,我的意思是浏览器(及其背后的操作系统)从您的 Web 服务器请求资源。假设您在服务器上仅支持 NTLM 身份验证,并且您的客户端是在 Windows 上运行的 IE,并且用户已经使用域帐户登录到 Windows。当用户登录到他的客户端机器时,他提供了用户名“somedomain\bob”(完全使用该大小写)。假设此帐户有权使用您的页面,那么您应该看到的就是这种情况。
    • 如果我的理解正确,你是说我可以通过登录时输入的内容来操纵我看到的大小写:somedomain\bob 或 somedomain\Bob 或 somedomain\bOb 等.但我已经尝试过了,它没有任何区别:我看到的凭据不仅仅是我在登录时输入的内容:它们一直保存在某个地方,我不知道在哪里。
    【解决方案2】:

    事实证明,我没有从客户端站点获得准确的信息:即身份验证正在按照我理解的方式进行(即 ASP.Net:从 AD 查找和返回;ASP:已移交给 IIS),意外的大小写归结为缓存问题,而不是身份验证机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多