首页 > 解决方案 > 没有 WebBrowser 的 WPF 客户端登录

问题描述

我有一个使用 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。

有人做过吗?

标签: identityserver4

解决方案


推荐阅读