OSX上的.Net Core和NTLM

时间:2017-12-20 09:26:46

标签: macos ntlm

我有一个.Net Core应用程序(它是一个基于NUnit的集成测试),使用HttpClient与服务器进行授权。服务器使用NTLM进行身份验证。

当我在Windows下运行此测试时,它运行正常。 当我在OSX下运行此测试时,它告诉我存在身份验证错误。

当我使用fiddler观察流量时,我注意到服务器响应为“401”并告诉客户端它可以使用NTLM进行身份验证。在OSX下,HttpClient的反应是返回认证错误。

OSX不支持NTLM吗?我能以某种方式解决这个问题吗?

1 个答案:

答案 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上使用它?