我正在尝试调试一个旧程序,因为它是用.net Framework3.5编写的。它是一个Windows应用程序,与WCF通信并使用身份验证方案Ntlm。我使用的是Windows10。在创建客户端时,它在代码中使用windowsClientCredentials.AllowNtlm = true;。但是AllowNtlm现在已经被弃用了,在微软的文档中,关于这个代码,它说这个设置现在是在本地安全策略中设置的。问题是,我工作的组织拥有有限的本地管理权限,甚至对开发人员也是如此。
问题是它识别出我的本地iis上托管的WCF使用Windows身份验证,并且启用了Ntlm和Negotiate。但是身份验证失败了。
“HTTP请求未经授权,客户端身份验证方案为'Ntlm‘。从服务器收到的身份验证头是'NTLM,Negotiate’。”
我的问题是,windowsClientCredentials.AllowNtlm是在后来的.net框架版本中被弃用了,还是在后来的windows版本中被弃用了?我可以请求访问本地安全策略设置。但由于我们的it部门对任何请求都会给出默认的答案,除非我给出我需要它的强有力的理由,否则我需要知道原因是不是因为我的windows版本。
发布于 2019-12-13 18:15:17
您的WCF项目是否与WCF服务通信?
在这种情况下,您可以在web应用程序项目的.vs/ applicationhost.config目录下的配置文件中添加/删除提供程序:
<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>希望能有所帮助。
https://stackoverflow.com/questions/57567953
复制相似问题