.net core 从.NET Core中的身份提供程序获取访问令牌?

.net core 从.NET Core中的身份提供程序获取访问令牌?,.net-core,oauth-2.0,access-token,openid-connect,idp,.net Core,Oauth 2.0,Access Token,Openid Connect,Idp,我正在我的公司建立OAuth 2和OIDC 我曾经处理从javascript客户机获取对受OAuth 2和OIDC保护的API的调用的访问令牌 现在,当客户端是调用受OAuth 2和OIDC保护的API的C#.NET核心应用程序时,我需要获取访问令牌 我可以试着自己编写代码。但是有很多,我担心我会弄错一些。因此,这个问题: NET Core是否包含从身份提供商处获取访问令牌的库? 说清楚,我不是在寻找用OAuth2和OIDC保护ASP.NET服务的代码。这段代码非常常见,很容易找到。(事实上很容

我正在我的公司建立OAuth 2和OIDC

我曾经处理从javascript客户机获取对受OAuth 2和OIDC保护的API的调用的访问令牌

现在,当客户端是调用受OAuth 2和OIDC保护的API的C#.NET核心应用程序时,我需要获取访问令牌

我可以试着自己编写代码。但是有很多,我担心我会弄错一些。因此,这个问题:

NET Core是否包含从身份提供商处获取访问令牌的库?

说清楚,我不是在寻找用OAuth2和OIDC保护ASP.NET服务的代码。这段代码非常常见,很容易找到。(事实上很容易找到我要找的东西很难。)

我使用发出请求的.Net核心项目。它支持我认为的所有主要流程,并基于认证/标准

我的一些代码使用它的类来演示语法的类型


如果您正在编写一个用户登录的非浏览器应用程序,那么这很棘手,而且往往涉及调用系统浏览器。上面的库有。

简短的回答是有。如果我理解你的问题

查看IdentityServer4上的文档,因为它给出了从asp.net core访问OAuth2令牌服务的示例,它应该转换为您正在使用的任何令牌服务器

但实际上,您要设置用于请求的http客户端: 其中:Client是HttpClient的实例

DiscoveryDocumentResponse disco = await 
Client.GetDiscoveryDocumentAsync("https://your_token_server/");

var tokenResponse = await Client.RequestClientCredentialsTokenAsync(new 
ClientCredentialsTokenRequest
        {
            Address = disco.TokenEndpoint,

            ClientId = "Some_Client_Id",
            ClientSecret = "Some_Client_Secret",
            Scope = "Some_Api_Scope"
        });
        Client.SetBearerToken(tokenResponse.AccessToken);
api也需要设置,但我建议的文档中有很多示例