使用HttpWebRequest的NTLM身份验证适用于.net 4.0但不适用于3.5

时间:2011-07-20 13:31:18

标签: winforms .net-3.5 .net-4.0 httpwebrequest ntlm

我已经编写了一些代码来使用HttpWebRequest执行NTLM身份验证。如果我将winform app的目标框架设置为4.0,那么它可以工作。

但是,如果我将其设置为3.5则不会(它返回401未经授权的错误)。正确发送和接收前两个连接,但是在收到第二个响应时。客户没有提出第3个请求,只是说未经授权。

我的代码是:

request = (HttpWebRequest)WebRequest.Create(authenticatedOpenAssetRssUrl);
            request.Credentials = new NetworkCredential(Environment.UserName, null);
            request.UserAgent = Constant.XML_FEED_USER_AGENT;
            request.UnsafeAuthenticatedConnectionSharing = true;

这是在Windows 7 x64位上运行。

2 个答案:

答案 0 :(得分:0)

检查Windows的安全性,Network security:基于NTLM SSP(包括安全RPC)客户端的最低会话安全性。取消选中Require 128-bit encryption并重新测试。

答案 1 :(得分:0)

我有同样的问题。  我能够通过改变突出显示的本地组策略来解决它们 您需要做的就是右键单击该策略并单击属性,您需要取消选中使用128位ssl Screenshot of the settings in local group policy