gpt4 book ai didi

c# - 流动客户端主题时如何在 C# HttpClient 中设置 OIDC/OAuth 持有者 token

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:44 24 4
gpt4 key购买 nike

据我了解,HttpClient 被设计为创建一次并重复使用。我将 IdentityServer3 用作 OIDC/OAuth 服务器,我查看的示例为每个请求创建一个 HttpClient 并使用扩展方法设置承载 token :

var client = new HttpClient();
client.SetBearerToken(token);

SetBearerToken 只是在 HttpClient 上设置默认授权 header :

client.DefaultRequestHeaders.Authorization = 
new AuthenticationHeaderValue("Bearer", token);

我有一个调用 ASP.NET Web API 的 ASP.NET Web 应用程序,我已经配置它们以便在进行调用时客户端身份流向 API,即在配置 OpenId 连接身份验证时我设置:

OpenIdConnectAuthenticationOptions.ResponseType = "id_token token"

但是,如果主题声明是在 token 中传递的,我现在无法重用 HttpClient(例如,一个请求在被另一个请求发送之前可能会覆盖其授权 header )。

如果我想重用 HttpClient,我应该将 token 设置到 HttpRequestMessage 中吗?如果不是,处理这种情况的推荐模式是什么?

最佳答案

您肯定想创建自己的 HttpRequestMessage并使用 SendAsync .不幸的是,您将没有设置不记名 token 的扩展方法,但这是处理 HttpClient 的最佳方式。

关于c# - 流动客户端主题时如何在 C# HttpClient 中设置 OIDC/OAuth 持有者 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com