我有一个.Net Core应用程序(它是一个基于NUnit的集成测试),使用HttpClient与服务器进行授权。服务器使用NTLM进行身份验证。
当我在Windows下运行此测试时,它运行正常。 当我在OSX下运行此测试时,它告诉我存在身份验证错误。
当我使用fiddler观察流量时,我注意到服务器响应为“401”并告诉客户端它可以使用NTLM进行身份验证。在OSX下,HttpClient的反应是返回认证错误。
OSX不支持NTLM吗?我能以某种方式解决这个问题吗?
答案 0 :(得分:0)
我找到了解决方案,我需要这样做:
var credential = new NetworkCredential(userName, password, domain);
var myCache = new CredentialCache();
myCache.Add(new Uri(myURL), "NTLM", credential);
var handler = new HttpClientHandler();
handler.Credentials = myCache;
现在它在osx下工作了!
但它停止在Windows上工作: - )。
我可以做一个“if”来确定我是否在osx上......
也许有更好的方法可以在osx 和 windows上使用它?