我得到了现在正在运作的关注方案:
使用System.Web.Mvc.AuthorizeAttribute
验证用户的MVC控制器是否经过身份验证,它将使用cookie。
API控制器使用System.Web.Http.AuthorizeAttribute
授权持有令牌。
我还有角度http拦截器,它可以验证并获取用于API目的的持有者令牌,可以在所有角度$http
请求中使用。但是我很困惑如何在用户登录后实现这两种目标?
这是当前的工作流程
这对我来说真的是双重工作,或者我应该专注于使用一个AuthorizeAttribute
?
答案 0 :(得分:1)
您需要使用授权键授予需要授权的功能。只有在生成授权令牌并通过http请求传递时,才能访问这些函数。
{ (MerchantId eq 5 or MerchantId eq 19 or MerchantId eq 34)}
这将帮助您在用户登录中获取生成的令牌。之后您需要使用控制器
module.service('tokenservice', function ($http) {
this.get = function () {
var accesstoken = sessionStorage.getItem('accessToken');
var logged_in = localStorage.getItem('logged_in').toString().trim() === 'false' ? false : true;
var authHeaders = {};
if (accesstoken && logged_in) {
authHeaders.Authorization = 'Bearer ' + accesstoken;
}
return authHeaders;
};
});
module.controller('yourControllerName', function ( $http, tokenservice) {
$http({
method: "POST",
url: '/Controller/MyFucntion',
headers: tokenservice.get(),
});
});
希望有所帮助