【问题标题】:Trying to debug old code. client credential code is deprecated尝试调试旧代码。客户端凭据代码已弃用
【发布时间】:2023-03-12 01:45:01
【问题描述】:

我正在尝试调试一个旧程序,它是用 .net Framework 3.5 编写的旧程序。它是一个与 WCF 通信并使用身份验证方案 Ntlm 的 Windows 应用程序。我正在使用 Windows 10。 在它使用的代码中 windowsClientCredentials.AllowNtlm = true;当它创建客户端时。但是 AllowNtlm 现在已被弃用,并且在有关此代码的 Microsoft 文档中,它说此设置现在已在本地安全策略中设置。问题是我工作的组织具有有限的本地管理员权限,即使对开发人员也是如此。

问题是它识别出我本地 iis 上托管的 WCF 使用 Windows 身份验证,启用了 Ntlm 和 Negotiate。但身份验证失败。

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

我的问题是,windowsClientCredentials.AllowNtlm 在以后的 .net 框架版本中被弃用了,还是在以后的 Windows 版本中被弃用了?我可以请求访问本地安全策略设置。但是由于我们的 IT 部门对任何请求都会给出一个默认答案,除非我给出强烈的理由,否则我需要它,我需要知道原因是否是因为我的 windows 版本。

【问题讨论】:

    标签: windows .net-3.5


    【解决方案1】:

    您的 WCF 项目是否与 Web 服务通信?

    在这种情况下,您可以在 web 应用程序项目的 .vs/config 目录下的 applicationhost.config 文件中添加/删除提供程序:

    <windowsAuthentication enabled="false">
        <providers>
            <add value="Negotiate" />
            <add value="NTLM" />
        </providers>
    </windowsAuthentication>
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 2016-09-12
      • 2019-04-21
      • 1970-01-01
      • 2012-06-25
      相关资源
      最近更新 更多