首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#或VB.net中获得身份验证令牌

如何在C#或VB.net中获得身份验证令牌
EN

Stack Overflow用户
提问于 2022-06-06 12:08:09
回答 1查看 922关注 0票数 0

我跟随CURL字符串从URL中获得一个令牌

代码语言:javascript
复制
$(curl 'https://api.api.api.com/api/auth/auth/oauth/token' -H 'accept: application/json, text/plain, */*' -H 'authorization: Basic KZZZOnRoaJJms3NlQ3JluO==' --data 'grant_type=password&scope=webclient&username=user1.user2&password=???????????'| jq -r '.access_token')

现在,我需要在c# (ASP.net)中获得相同的结果。

我试过了,但一直没有得到授权

代码语言:javascript
复制
 Private Sub AuthTOKEN()

    Try
        Dim consumerSecret As String = "KZZZOnRoaJJms3NlQ3JluO=="
        Dim accessToken As String
        Dim myURL As String = "https://api.api.api.com/api/auth/auth/oauth/token"

        Dim byte1 As Byte() = Encoding.ASCII.GetBytes("grant_type=password&scope=webclient&username=user1.user2&password=password")

        Dim bearerReq As HttpWebRequest = TryCast(WebRequest.Create(myURL), HttpWebRequest)
        bearerReq.Accept = "application/json, text/plain, */*"
        bearerReq.Method = "POST"
        bearerReq.ContentType = "application/x-www-form-urlencoded"
        bearerReq.ContentLength = byte1.Length
        bearerReq.KeepAlive = False
        bearerReq.Headers.Add("Authorization", "Basic " & Convert.ToBase64String(Encoding.[Default].GetBytes(consumerSecret)))
        Dim newStream As Stream = bearerReq.GetRequestStream()
        newStream.Write(byte1, 0, byte1.Length)
        Dim bearerResp As WebResponse = bearerReq.GetResponse()

        Using reader = New StreamReader(bearerResp.GetResponseStream(), Encoding.UTF8)
            Dim response = reader.ReadToEnd()
            Dim bearer As Bearer = JsonConvert.DeserializeObject(Of Bearer)(response)
            accessToken = bearer.access_token
        End Using

        Console.WriteLine(accessToken)
        Console.Read()
    Catch ex As Exception
        MsgBox(ex.ToString)
    Finally
    End Try

End Sub

我失去了一些东西。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-06-06 14:41:02

解决了这个问题:

代码语言:javascript
复制
    Private Sub AuthTOKEN()

    Try
        Dim consumerKey As String = "Basic"
        Dim consumerSecret As String = "XXXXXXXXXXXXXXXXX=="
        Dim accessToken As String
        Dim myURL As String = "https://api.api.api.com/api/oauth/token"

        Dim x As String
        x = "grant_type=password&scope=webclient&username=user1.user2&password=xxxxx"

        Dim byte1 As Byte() = Encoding.ASCII.GetBytes(x)
        Dim bearerReq As HttpWebRequest = TryCast(WebRequest.Create(myURL), HttpWebRequest)
        bearerReq.Accept = "application/json, text/plain, */*"
        bearerReq.Method = "POST"
        bearerReq.ContentType = "application/x-www-form-urlencoded"
        bearerReq.ContentLength = byte1.Length
        bearerReq.KeepAlive = False

        bearerReq.Headers.Add("Authorization", "Basic " & consumerSecret)
        Dim newStream As Stream = bearerReq.GetRequestStream()

        newStream.Write(byte1, 0, byte1.Length)
        Dim bearerResp As WebResponse = bearerReq.GetResponse()

        Using reader = New StreamReader(bearerResp.GetResponseStream(), Encoding.UTF8)
            Dim response = reader.ReadToEnd()
            Dim bearer As Bearer = JsonConvert.DeserializeObject(Of Bearer)(response)
            accessToken = bearer.access_token
        End Using

        Console.WriteLine(accessToken)
        Console.Read()
    Catch ex As Exception
        MsgBox(ex.ToString)
    Finally
    End Try

End Sub

谢了,吉格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72517456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档