【问题标题】:What's the difference in WCF between Ntlm and NTLM, and how can I fix it?Ntlm 和 NTLM 之间的 WCF 有什么区别,我该如何解决?
【发布时间】:2011-12-23 16:45:31
【问题描述】:

我有一个在 IIS 6 上运行的 WCF 服务,它使用 NTLM 集成了身份验证和模拟。

Web.Config

的相关部分
  <system.web>
    <identity impersonate="true"/>
    <customErrors mode="Off"></customErrors>
  </system.web>
    <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    ...
  </system.web>
  ...
  <wsHttpBinding>
    <binding name="wsHttpEndpointBinding">
      <security mode="Transport">
        <transport clientCredentialType="Ntlm" />
      </security>
    </binding>
   </wsHttpBinding>

我刚刚添加了 aspNetCompatibility,因为我想知道登录的用户是谁(至少就 IIS 而言)。从我所做的几次搜索中,这就是您获取用户的方式。

好吧,在添加那行并发布我的服务器后,我得到了可能是我见过的最愚蠢的错误:

HTTP 请求未经客户端身份验证方案“Ntlm”授权。从服务器收到的身份验证标头是“NTLM”。

我想,“很明显,他们正在做一个非常区分大小写的比较。”因此,我在整个客户端解决方案中搜索了 Ntlm,并用 NTLM 替换了所有非变量事件。没有运气。

我的主要目标当然是让任何用户通过 IIS+NTLM 进行身份验证。如果我以错误的方式去做,我很高兴知道更简单/更好的方式。否则,我如何告诉我的客户(或我的服务器)可以继续进行身份验证?

【问题讨论】:

  • 所以您的传输现在是 clientCredentialType="NTLM" 并且您更新了客户端的配置文件?

标签: vb.net wcf authentication ntlm


【解决方案1】:

如果您遇到此错误,另一种可能性是您在使用 NTLM 进行环回检查时遇到问题。我有一个在非域(工作组)服务器上独立运行的服务。 WCF 使用具有传输安全模式和 Ntlm 客户端凭据的 BasicHttpBinding 进行配置。当尝试使用https://servername 访问服务时,效果很好。如果我尝试使用 FQDN (https://servername.domain.com) 访问它,它会失败并出现相同的错误:

The HTTP request is unauthorized with client authentication scheme 'Ntlm'. The authentication header received from the server was 'NTLM'.

如果您查看 Windows 安全日志,您将看到事件 ID 为 4625 的审核失败。在此您将看到以下失败信息:

Failure Information:
Failure Reason: An Error occured during Logon.
Status:         0xc000006d
Sub Status:     0x0

要解决此问题,您需要add the back connect host names (preferred) or disable the loopback check。这是在 Windows Server 2003 SP1 和更高版本中为 NTLM 添加的安全增强功能,以关闭针对该协议的攻击向量。但是,该修复程序会导致很多不清楚的错误消息,例如来自 WCF 的这条错误消息,并且至今仍以许多晦涩难懂的方式困扰着我。

【讨论】:

    【解决方案2】:

    开始Here 。这应该可以解决您的问题

    【讨论】:

    • 这不是答案,而是链接。什么解决了这种情况下的情况?
    • 链接不再有效。我得到一个 404 页面。解决方案到底是什么?
    • 看到这个@n-develop 正是链接没有答案的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2013-06-13
    • 1970-01-01
    相关资源
    最近更新 更多