这给了我heavesches,我有这个代码在两台机器上完美运行:
CredentialCache cc = new CredentialCache();
cc.Add(
uri,
"NTLM",
new NetworkCredential(@"MyDomain\MyUsername", "MyPassword"));
request.Credentials = cc;
在第三个问题上,NTLM因http代码401失败,我确信我可以访问,因为它可以在同一台机器上使用不同的浏览器*(Firefox,IE)。
什么可能导致问题?
*我使用fiddler确保浏览器使用NTLM并且确实如此。
答案 0 :(得分:0)
在链接中:http://msdn.microsoft.com/en-us/library/59x2s2s6(v=vs.110).aspx 他们在“备注”下写下以下内容:
'authType支持的值是“NTLM”,“Digest”,“Kerberos”和“Negotiate”。 使用此方法添加的凭据仅适用于SMTP。此方法不适用于HTTP或FTP协议。'
我想您可能正在使用与SMTP不同的协议来制作凭据。错误代码401主要通过HTTP生成。
或者您很简单,不要引用适当的SMTP地址。如何解决这个问题..我不知道,我只能尝试找出问题所在。也许你引用了一个不存在的地址。
在这里,也许这会有所帮助:HttpWebRequest 401 with NTLM Authenticiation
答案 1 :(得分:0)
更换
new NetworkCredential(@"MyDomain\MyUsername", "MyPassword"));
通过
new NetworkCredential("MyUsername", "MyPassword", "MyDomain"));
解决了第三台机器上的问题......根据机器的不同,代码的行为会有所不同...