2016-05-25 15 views
1

Web API oauthベアラトークン認証+ AngularJsを使用していますfrom here これは別のブラウザで動作しますが、Microsoft Edgeでは動作しません。 このブラウザでは、サーバーからトークンを取得しますが、ブラウザは別のページにリダイレクトする必要がありますが、このページにはまだ のままです。 ローカルストレージにトークンデータを設定すると問題が発生すると思います。 私が問題だったWeb API oauthベアラトークン認証がエッジブラウザで動作しない

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 }); 
     } 

答えて

0

この方法により、これを行う私は、現在のユーザーが、この方法で

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"); 
     } 

    }); 

を役割を必要としていたかどうかを確認ウェブAPIメソッドへのHTTP GETリクエストを行うとき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; 
     }  
    } 

エッジブラウザでは、常にfalを返しますse。私はこの方法でこの問題を解決します。

関連する問題