c# - HttpWebRequest 中的 ICredentials
问题描述
我试图发出一个网络请求,并注意到它需要基于ICredentials
接口的凭据。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(UrlID);
request.Method = WebRequestMethods.Http.Get;
request.ContentType = "text/json";
request.Credentials = this.Credentials;
我已经在我的配置类中实现了该接口,因此我可以跳过在类之间传递用户名和密码。
public NetworkCredential GetCredential(Uri uri, string authType)
{
return new NetworkCredential(Login, _Password);
}
但是,它无法进行身份验证。我找到了另一种方法来做到这CredentialCache
一点(请注意,同样NetworkCredential
通过了):
CredentialCache cc = new CredentialCache();
cc.Add(
UrlID,
"Basic",
this.Credentials.GetCredential(UrlID, "Basic"));
request.Credentials = cc;
问题是为什么即使它们都继承自它们,它们的行为也会不同ICredentials
?不应该HttpWebRequest
只访问GetCredential
应该返回相同NetworkCredential
对象的方法?
谢谢你的澄清。
解决方案
推荐阅读
- c# - Adwords Api 如何在广告级别暂停广告
- functional-programming - 列出反向 Ocaml
- python - 如何在 Sagemaker Jupyter Notebook shell 命令中访问 python 变量
- r - R 4.0.1 版无法正确分析我的数据
- java - Java:与 Karplus-Strong 方程相关的方程的方法不返回预期结果;原因不明
- python - 使用 load_table_from_dataframe 方法将数据写入 BigQuery 表错误 - 'str' 对象没有属性 'to_api_repr'
- python - 如何创建平衡的 k-means 地理空间集群?
- reactjs - 如何更新 React 中的其他组件?
- javascript - 如何解决这个问题 TypeError: Cannot read property 'roles' of undefined
- csv - 如何从 WSO2 中的 CSV 响应中进行 JSON 包装({“text”:“)