【问题标题】:DNN Jwt Authorization request not working from from C# Desktop ApplicationDNN Jwt 授权请求在 C# 桌面应用程序中不起作用
【发布时间】: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


【解决方案1】:

抱歉,messageHandlers>JWTAuth 的 web.config 是别的东西 forceSSL 设置为 true。 不知何故,ajax 非 SSL 调用并没有失败,但 C# 调用将其设置为 false 时却失败了。

【讨论】:

    猜你喜欢
    • 2014-06-12
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 2017-07-09
    • 2012-09-19
    • 2021-06-26
    • 2019-07-23
    相关资源
    最近更新 更多