【发布时间】:2018-02-22 11:01:52
【问题描述】:
我需要使用需要基本先发制人身份验证的 Web 服务。我有以下代码,但响应时出错 -
'远程服务器返回错误:(403) Forbidden.'
用户凭据正确。有什么想法有什么问题吗?
string url = "MYURL";
HttpWebRequest req = HttpWebRequest.Create(url) as HttpWebRequest;
string user = "USER";
string pwd = "PASSWORD";
string auth = "Basic " + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(user + ":" + pwd));
req.PreAuthenticate = true;
req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;
req.Headers.Add("Authorization", auth);
WebResponse resp = req.GetResponse();
resp.Close();
req = HttpWebRequest.Create(url) as HttpWebRequest;
req.PreAuthenticate = true;
req.Credentials = new NetworkCredential(user, pwd);
resp.Close();
【问题讨论】:
-
您有文档吗?身份验证/授权有多种形式,你怎么知道它使用的是
Basic?现代服务倾向于使用令牌授权。 -
文档说:对于 REST (jSON),将使用基本身份验证。此标头将包含 WS-Security 信息。
标签: c# rest web-services preemptive