Jer*_*Lam 5 c# asp.net credentials httpwebrequest networkcredentials
我正在尝试使用HttpWebRequest请求需要 Windows 身份验证的 url ,我正在使用
request.Credential = New NetworkCredential("username", "password");
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我决定不硬记录用户名和密码,然后切换到
request.Credential = CredentialCache.DefaultNetworkCredentials;
Run Code Online (Sandbox Code Playgroud)
然后我得到了 401 未经身份验证的错误。我检查了我的用户
WindowsIdentity.GetCurrent();
Run Code Online (Sandbox Code Playgroud)
它正确返回我的用户名,但是
CredentialCache.DefaultNetworkCredentials;
Run Code Online (Sandbox Code Playgroud)
返回我的用户名、域的空字符串...几乎所有内容都是空字符串.. 太糟糕了HttpWebRequest.Credential期待ICredential意味着我无法将WindowsIdentity.GetCurrent()设置为它。
无论如何,我可以将我当前的登录用户传递给HttpWebRequest.Credential吗?
是CredentialCache.DefaultNetworkCredentials; 正确的方法?或者我只是缺少一些设置?
我已经阅读了一些像这样的文章 http://msdn.microsoft.com/en-us/library/ms998351.aspx。
它要么太长太复杂,我无法理解,要么不起作用。我是新手,希望在这里得到一些直接的答案。
如果您使用基本身份验证,那么这将不起作用。请参阅此问题:HttpWebRequest with basic authentication failed with 401 erorr for DefaultNetworkCredentials
这篇微软文章指出,DefaultCredentials 仅适用于 NTLM、协商和基于 Kerberos 的身份验证。 http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspx
出于信息目的,这是一篇简短解释身份验证方法的文章:http://msdn.microsoft.com/en-us/library/ms789031.aspx
| 归档时间: |
|
| 查看次数: |
7422 次 |
| 最近记录: |