如何在ASP.net中编写方法以从OAuthAPI获取令牌

时间:2019-01-22 15:57:12

标签: asp.net oauth-2.0

从OAuth获取访问令牌,并将其传递到每个请求的标头中。

我在以下位置有api:https://login.microsoftonline.com/48b0431c-82f6-4ad2-a023-ac96dbf5614e/oauth2/token 并且在Postman中可以看到访问令牌被返回。 我试图在我现有的4.5 .NET应用程序中调用此APIM api。并写了以下内容:

Dim client = InitializeTokenClient()
    Using content As New StringContent(String.Empty)
        Dim response = client.PostAsync($"48b0431c-82f6-4ad2-a023-ac96dbf5614e/oauth2/token", content).Result
        If (response.StatusCode = HttpStatusCode.OK) Then
            response.
        End If
        Return response
    End Using

我不确定如何从响应对象访问access_token以及如何传递访问令牌以进行后续APIM api调用?

1 个答案:

答案 0 :(得分:0)

您可以通过反序列化响应来从响应中获取access_token:

添加对System.Web.Extensions的引用,并将Imports System.Web.Script.Serialization添加到文件顶部。然后以下代码将获得access_token:

    Dim j As Object = New JavaScriptSerializer().Deserialize(Of Object)(response)
    Dim accessToken = j("access_token")

您可以在调用API时使用令牌,方法是添加一个Authorization标头,其值为Bearer <token>