Web API oauth 不记名令牌身份验证在 Edge 浏览器中不起作用

Web API oauth bearer token authentication doesn't work in Edge browser

我使用 Web API oauth 不记名令牌认证 + AngularJs from here 它适用于其他浏览器,但在 Microsoft Edge 中不起作用。 在此浏览器中,我从服务器获取令牌,但仍停留在该页面中, 尽管浏览器必须重定向到另一个页面。 我认为当我将令牌数据设置到本地存储时会出现问题。 我是这样做的

if (loginData.useRefreshTokens) {
            localStorageService.set('authorizationData', { token: response.access_token, userName: loginData.userName, refreshToken: response.refresh_token, useRefreshTokens: true });
        }
        else {
            localStorageService.set('authorizationData', { token: response.access_token, userName: loginData.userName, refreshToken: "", useRefreshTokens: false });
        }

问题是当我对 Web api 方法执行 http get 请求时,该方法通过这种方式检查当前用户是否具有所需的角色

AngularJS

 $http({
        method: "GET",
        url: "api/Models/CheckAccess/"
    }).then(function mySucces(response) {
        if (response.data === true) {
            $location.path(page);
        }
        else
        {
            authServiceFactory.logOut();
            $location.path("login");
        }

    });

WebApi 方法

    [HttpGet]
    public bool CheckAccess()
    {
        var identity = (ClaimsPrincipal)Thread.CurrentPrincipal;        
        var userRole = identity.Claims.Where(c => c.Type == ClaimTypes.Role)
                           .Select(c => c.Value).SingleOrDefault();
        if (userRole=="Hauler")
        {
            return true;
        }
        else
        {
            return false;
        }      
    }

在 Edge 浏览器中它总是 return false。我用这种方法解决了这个问题

    [HttpGet]
    [Authorize(Roles = "Hauler")]
    public bool CheckAccess()
    {      
        return true;
    }