【问题标题】:Perform OAuth authentication from WPF application从 WPF 应用程序执行 OAuth 身份验证
【发布时间】:2019-09-16 11:52:20
【问题描述】:

我有一个现有的 Web API 后端,它使用 OAuth 来验证 vue.js 前端调用的身份。这是一个现有的,我无法修改它。 我需要从我编写的新 WPF 应用程序执行身份验证。

我已经使用表单中的 HttpClient 编写了查询

http://backend/api/signin?grant_type=password&username=user&password=1234hola

但我收到有关 grant_type 的错误。有我可以遵循的教程吗?我不认为执行身份验证有那么难,但我认为我错过了一些非常愚蠢的东西

提前致谢

【问题讨论】:

  • 您是否尝试按照here 的建议将凭据添加到标头?你的 vue.js 前端是如何调用服务的?
  • @mm8 不,我没有添加任何标题......这是一个现有的代码,不是我的......我没有看一下作为凭证传递的内容。尽快检查我有时间,谢谢你的提示
  • @mm8 这行得通,如果你把它作为答案,我投票作为解决方案

标签: wpf oauth owin


【解决方案1】:

您应该按照here 的建议将凭据添加到标题中:

var client = new HttpClient() { BaseAddress = new Uri("http://url.com") };
var request = new HttpRequestMessage(HttpMethod.Post, "/path");

var byteArray = new UTF8Encoding().GetBytes("<clientid>:<clientsecret>");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
...
var response = await client.SendAsync(request);

【讨论】:

  • 打扰一下@mm8,我已经成功管理它执行身份验证,但是如何保存令牌以供后续调用?
  • @advapi:如果您还有其他问题,请提出新问题。
猜你喜欢
  • 2017-03-10
  • 2012-05-10
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多