【发布时间】:2018-04-16 12:42:33
【问题描述】:
我正在运行 Web API REST 服务,我可以使用来自 ajax 请求的 Jwt 进行授权,但我不能对来自 C# 桌面应用程序的 http 请求执行相同的操作,我正在尝试设置授权,但我总是收到 UnAuthorized 401 错误: 这是我尝试过的一段代码:其中 accessToken 是我登录成功后得到的令牌。
using (var client = new HttpClient())
{
var url = "SERICE ADDRESS";
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
var response = client.GetStringAsync(url).Result;
}
您能否帮助从桌面应用程序获得授权工作所缺少的内容。
【问题讨论】:
-
您可以调试您的 Web API 并查看授权被拒绝的位置吗?顺便说一句,两个严重的缺陷是为每个请求创建一个新的 HttpClient 而不是共享一个实例,以及使用
.Result阻止异步调用。 -
我无法调试授权方法,因为它是 DNN CMS 的一部分,暂时不要介意其他代码问题,这是要授权的示例代码
-
我会在执行 ajax 操作时使用浏览器开发工具跟踪 http 调用,以便您可以看到进入请求的所有内容。
-
就像我说的,ajax 调用在浏览器中运行良好,并且授权没有问题,只有 c# 应用程序有问题
-
我知道,这就是为什么我会查看正在运行的 http 流量,以便我可以编写 c# 代码来做同样的事情。
标签: c# rest asp.net-web-api jwt dotnetnuke