如何在C#中获取OAuth 2.0身份验证令牌

前端之家收集整理的这篇文章主要介绍了如何在C#中获取OAuth 2.0身份验证令牌前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个

> Auth URL(恰好是一个
https://login.microsoftonline.com/ ……”)如果有帮助的话.
>访问令牌URL“https://service.endpoint.com/api/oauth2/token
> ClientId“abc”
> Clientsecret“123”

然后,我需要在标头中使用承载令牌进行get调用.

我可以在Postman中使用它,但是试图弄清楚如何在C#中实现它.我一直在使用RestSharp(但对其他人开放).这一切看起来都是不透明的,当我认为它非常直接时:/它是一个控制台应用程序,所以我不需要花里胡哨.

最终,我希望我的应用程序(以编程方式)获取令牌,然后将其用于后续调用.我很感激任何人指点我的文档或例子,这解释了我明显的意思.我遇到的一切都是部分的,或者用于不同流程的服务.

谢谢.

解决方法

在Postman中,单击Generate Code,然后在Generate Code Snippets对话框中,您可以选择不同的编码语言,包括C#(RestSharp).

此外,您应该只需要访问令牌URL.然后表单参数:

grant_type=client_credentials
client_id=abc    
client_secret=123

代码片段:

var client = new RestClient("https://service.endpoint.com/api/oauth2/token");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control","no-cache");
request.AddHeader("content-type","application/x-www-form-urlencoded");
request.AddParameter("application/x-www-form-urlencoded","grant_type=client_credentials&client_id=abc&client_secret=123",ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

然后,您可以从响应正文中获取访问令牌.例如,对于Bearer令牌类型,您可以将以下标头添加到后续经过身份验证的请求中:

request.AddHeader("authorization","Bearer <access_token>");

猜你在找的C#相关文章