asp.net - Web api 和 Angularjs 身份验证失败

标签 asp.net angularjs authentication asp.net-web-api

我尝试使用 Angular 向 WebApi 服务器发出经过身份验证的请求。

这就是我提出请求的方式:

var config = {headers: {Authorization: "Bearer " + JSON.parse($cookies.token)}};
var url = 'http://localhost:53889/api/Values/5';

$http.get(url,config).success(function(response){
     console.log(response);
})

这就是我设置身份验证的方式:

login: function(credentials){
          return $http({
             method: 'POST',
             url: url + '/Token',
             headers: {'Content-Type' : 'application/x-www.form-urlencoded'},
             transformRequest : function(obj){
                 var str = [];
                 for(var p in obj){
                   str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                 }
                 return str.join("&");
             },
               data: credentials
        });

var success = function(data){
    AuthorizationFactory.setCurrentUser(credentials.username);
    ApiFactory.init(data["access_token"]);
    $cookieStore.put('token', JSON.stringify(data["access_token"]));
};

成功方法的调用如下:AuthorizationFactory.login(credentials).success(success)

但是每次我尝试发出经过身份验证的请求时,都会收到 401 错误消息。

标题看起来像这样:

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:ro-RO,ro;q=0.8,en-US;q=0.6,en;q=0.4
Authorization:Bearer "4N_9ScOCtFxTgNs....t"
Cache-Control:no-cache
Connection:keep-alive
Cookie:.AspNet.Cookies=Rx...y0OTHrvE
Host:localhost:53889
Pragma:no-cache
Referer:http://localhost:53889/app/
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36
X-Access-Token:"\"4N_9ScO...XZ6t\"" 

我做错了什么?我缺少什么?

最佳答案

请勿在 Authorization header 中使用引号。它应该看起来像这样:

Authorization: Bearer your_token_here

关于asp.net - Web api 和 Angularjs 身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28339627/

相关文章:

asp.net - 扩展成员(member) API、MembershipUser

javascript - Angular : ionic. bundle.js :21157 TypeError: PubNub. 中的 Ionic Pubnub 聊天发布不是一个函数

ios - 下拉菜单中的Timepicker在iPad和触摸设备上不起作用

javascript - 无法将数据从 Angular 应用程序发布到 Play!框架

c# - 如何在 ASP.NET Core 1.0 中配置身份验证

c# - 读/写 Cookie

c# - 如何将请求直接发送到 .DLL(而不是 .ASPX、.ASHX 等)?

c# - 使用 C# 和 Jquery 的 AJAX 中的汉字问题

javascript - 通过 AJAX 处理身份验证?

php - 如何使用 mySQL 在 php 中创建一个简单的登录