.NET 5 HttpClient 摘要身份验证

问题描述

我正在尝试使用 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...