加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:09:16 所属栏目:百科 来源:网络整理
导读:我有一个 Auth URL(恰好是一个 “https://login.microsoftonline.com/ ……”)如果有帮助的话. 访问令牌URL“https://service.endpoint.com/api/oauth2/token” ClientId“abc” Clientsecret“123” 然后,我需要在标头中使用承载令牌进行get调用. 我可以在P
我有一个

> 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>");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读