我有一个使用IdentityServer的有角度的网站,看来工作正常。该网站由API支持。我还需要有一个Windows wpf应用程序,该应用程序将允许用户使用相同的凭据登录,然后使用相同的api。
我可以看到执行此操作的WPF示例,但是它们使用Web浏览器和HttpListener进行响应。我宁愿不这样做!
据我所知:
var disco = await DiscoveryClient.GetAsync(_options.IdentityUrl);
if (!disco.IsError)
{
//var tokenClient = new TokenClient(disco.TokenEndpoint, "client.web", "secret");
var client = new HttpClient();
var passwordRequest = new PasswordTokenRequest
{
Address = disco.TokenEndpoint,
GrantType = GrantTypes.Password,
ClientId = "client.web",
ClientCredentialStyle = ClientCredentialStyle.PostBody,
UserName = request.Email,
Password = SecureStringToString(request.Password)
};
var response = await client.RequestPasswordTokenAsync(passwordRequest);
}
我在允许的授予类型中添加了密码。
响应为invalid_client。
有人这样做吗?