如何解决为 .NET Core 3.1/IdentityModel 5.1
我正在使用 IdentityServer4。其中一部分我正在尝试使用 IdentityModel 5.1.0 构建客户端并尝试使用以下可用代码段 here
// 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");
或者查看 actual method definition 或另一个 helper。
一个有用的提示:流行的包通常有 a lot of tests。您可以查看它们以了解如何使用该库。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。