[英]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.