2016-05-24 30 views
0

認証と承認のためにWebApi 2アプリケーションを使用するMVCフロントエンドアプリケーションがあります。私はJWTトークンを同じものに使用しています。これまで私は正常に認証してトークンを受け取ることができました...私は、POSTMANツールを使用してヘッダーにAuthorizationトークンを追加することによって、制限されたリソース([Authorize]属性)にさらにアクセスできます。JWTトークンとOwin認証

Authorization: “Bearer <jwt.token.string>” 

問題は、MVCパイプラインの呼び出しをインターセプトして、httpHeaderにトークンを追加できません。常に私をログインページに戻します。私がPOSTMANツールを使用する場合はありません。私は失敗し、次のポイントでトークンを注入しようとしている:

  • はStartup.csでStageMarker(PipelineStageAuthenticate)を使用して、カスタムDelegatingHandler
  • Owinパイプラインを追加するカスタムActionFilterAttribute
  • の追加承認をカスタム実装
  • と属性の拡張します

上記のすべてのケースで、私はデバッグすることができますので、私はイベントを打ちました。私はヘッダーを設定する前に認可ポイントを打つことを強く疑っていますが、HttpContextオブジェクトを正しく傍受し、Authorizationヘッダーを挿入するためにフローのシーケンスを把握することはできません。認証が成功した後

答えて

0

、これが署名したクッキーを作成し、あなたの承認属性は自動的にクッキーを読みます

var ctx = Request.GetOwinContext(); 
      var authenticateResult = await ctx.Authentication.AuthenticateAsync(DefaultAuthenticationTypes.ExternalBearer); 
      ctx.Authentication.SignOut(DefaultAuthenticationTypes.ExternalBearer); 
      var applicationCookieIdentity = new ClaimsIdentity(authenticateResult.Identity.Claims, DefaultAuthenticationTypes.ApplicationCookie); 
      ctx.Authentication.SignIn(applicationCookieIdentity); 

を追加します。あなたのすべてのリクエストはその後承認されます。

関連する問題