【问题标题】:AngularJS - Authentication with Bearer Token and Web API 2.0AngularJS - 使用承载令牌和 Web API 2.0 进行身份验证
【发布时间】:2014-10-24 13:50:47
【问题描述】:

我的问题是,即使我将 $http.defaults.headers.common.Authorization 设置为 null,我仍然能够访问我的 Web API 2.0 应用程序的 [Authorize] 部分。

当我从头开始应用程序并尝试通过初始 GET 请求检索数据时,不会出现此问题。这是我从 $http 回调函数收到错误的时候。

任何猜测为什么会发生这种情况?我非常确信不记名令牌存储在浏览器中的某个位置并且没有被正确删除......

Chrome(带有不记名令牌):

Chrome(无不记名令牌):

Internet Explorer(无承载令牌属性):

首先,IE 中的身份验证属性完全缺失。其次,在 Chrome 中一切正常。在 IE 中,我遇到的问题是我无法删除注销请求的令牌。带有区域摘要的登录部分 [Authorize] 部分完美运行。

【问题讨论】:

    标签: angularjs owin asp.net-web-api2


    【解决方案1】:

    确保您还没有通过 $.ajaxSetup 之类的方式配置 jQuery 来执行此操作

    【讨论】:

    • 我在使用 Angular 时很少使用 JQuery。有没有办法调试这个问题?该属性设置为null,这就是我所能看到的。
    • 我首先要确认您确实在发送标头;例如,chrome 调试工具可让您检查您发送的所有请求。 “意外”指定授权标头有点困难......
    • 我在最初的答案中添加了一些进一步的打印屏幕 - 显然该属性在 IE 中完全不存在,但在 Google Chrome 中却不是这样......
    • 我什至不确定你的问题是什么。您不希望设置 Authorization 标头,对吗?现在什么情况下会出现?
    • 它仍然显示在 IE 中,即使我将其设置为 null(注销)。在谷歌浏览器中一切正常。
    【解决方案2】:

    尝试检查已设置的请求,如果有任何 Authentification 标头。还要尝试验证您使用的是来自System.Web.Http[Authorize] 属性,而不是System.Web.Mvc

    【讨论】:

      猜你喜欢
      • 2015-12-25
      • 1970-01-01
      • 2017-08-16
      • 2017-07-20
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      相关资源
      最近更新 更多