我正在使用Visual Studio 2019在VB.NET 4.7.2中创建应用程序。 用户必须使用OpenID Connect进行身份验证。
我已经使用NuGet软件包管理器下载了IdentityModel软件包,并尝试对身份验证方法进行编码。
第一步之前:导入库
Imports System.Net
Imports IdentityModel.Client
Imports System.Threading.Tasks
第一步:令牌请求数据
Function Get_Token As String()
Dim request As TokenRequest = New TokenRequest
request.Address = "https://demo.identityserver.io/connect/token"
request.GrantType = "custom"
request.ClientId = "ClientID"
request.Parameters.Add("parameter1", "value1")
request.Parameters.Add("parameter2", "value2")
第二步:为令牌请求调用异步函数。我必须使用异步函数,因为函数RequestTokenAsync的响应具有Task(Of TokenResponse)作为类型。我的问题在这里: 这是正确的方法吗?我怎么称呼异步。函数,以便可以在调用函数中评估返回变量 response ?
Call AsyncCall(request)
异步函数:不起作用,并给出错误NullReferenceException
Async Function AsyncCall(rqst As TokenRequest) As Task(Of TokenResponse)
Dim client As Http.HttpClient = New Http.HttpClient()
Dim response As TokenResponse = Await client.RequestTokenAsync(rqst)
Return response
End Function
异步函数将变量 response 返回给函数Get_Token,并对变量进行进一步评估:
第三步:响应的评估 即使异步函数具有“返回响应”以便将变量 response 返回给调用函数,但是调用函数无法识别 response ,我如何返回变量响应正确吗?
Get_Token = response.AccessToken
End Function
您能帮我一下,还是告诉我任何方向?
答案 0 :(得分:0)
IdentityModel编码模型的更改如下: