簡體   English   中英

為 .NET Core 3.1/IdentityModel 5.1 使用 ResourceOwnerPassword 流

[英]Using ResourceOwnerPassword flow for .NET Core 3.1/IdentityModel 5.1

我正在使用 IdentityServer4。 那我想建立使用IdentityModel 5.1.0客戶端,並嘗試使用下面的一段可用的代碼部分在這里

// request token
var tokenClient = new TokenClient(disco.TokenEndpoint, "ro.client", "secret");
var tokenResponse = await tokenClient.RequestResourceOwnerPasswordAsync("alice", "password", "api1");

if (tokenResponse.IsError)
{
    Console.WriteLine(tokenResponse.Error);
    return;
}

Console.WriteLine(tokenResponse.Json);
Console.WriteLine("\n\n");

但這給了我以下錯誤。

錯誤 CS1729:“TokenClient”不包含采用 3 個參數的構造函數

從文檔來看,該頁面似乎僅適用於 Core 1.0。 當我將文檔更改為 3.1.0 時,我得到

抱歉 此頁面尚不存在

這是否意味着 .NET Core 3.1 不支持ResourceOwnerPassword流?

Ctrl + 單擊該方法會轉到其簽名,您可以在其中找到該方法所需的特定參數。

瀏覽 repo,我發現了這個關於使用密碼憑證令牌請求的片段:

var response = await _client.RequestPasswordTokenAsync(new PasswordTokenRequest
{
    ClientId = "client",
    UserName = "user",
    Password = "password",
    Scope = "scope",
    Resource = { "resource1", "resource2" }
});

另一個重載:

var response = await tokenClient.RequestPasswordTokenAsync(userName: "user", password: "password", scope: "scope");

或者查看實際的方法定義或其他幫助程序

一個有用的提示:流行的包通常有很多測試 您可以查看它們以了解如何使用該庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM