问题描述
我正在尝试使用 HttpClient
在 .NET 5 中进行摘要式身份验证以使用 mongoDB Atlas。 .Net Core HttpClient Digest Authentication 中建议的解决方法不再适用于 .NET 5。
例如这段代码
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler",false);
var httpClient = new HttpClient(
new httpclienthandler
{
Credentials =
new NetworkCredential(
userName,password)
});
var domain = "https://cloud.mongodb.com/";
var response = httpClient.GetAsync(new Uri($"{domain}api/atlas/v1.0/groups/{groupId}")).Result;
当目标框架为 .net core 3.1 时,返回 200 ok 并提供正确的数据
但是当目标框架是 .NET 5 时,http 客户端不处理幕后的摘要流并返回
StatusCode: 401,ReasonPhrase: 'Unauthorized',Version: 1.1,Content: System.Net.Http.httpconnectionResponseContent,Headers:
{
WWW-Authenticate: Digest realm="MMS Public API",domain="",nonce=""generatednonce"",algorithm=MD5,qop="auth",stale=false
x-envoy-upstream-service-time: 2
Date: Sun,17 Jan 2021 13:37:12 GMT
Server: envoy
Content-Type: application/json
Content-Length: 106
}
有谁知道我除了自己实现摘要流程之外还有其他选择吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)