1

以下の参照に従って、Azure AD を使用して Web サイトに認証を実装しようとしています。私たちのウェブサイトは、IIS でホストされている以下のスタック ASP.NET、MVC5 を使用しています。基本的に、Web サイトの認証には OpenId Connect プロトコルを使用し、委任アクセスには oAuth2.0 プロトコルを使用して、認可用のトークンを使用します。

https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet

Azure AD ロジックからのトークンの取得は、OwinStartup クラスから呼び出される Startup.Auth.cs クラスにあります。

これを私たちのサイトに実装すると、Startup.Auth.cs ConfigureAuth は、APP の起動時に上記の参照に従って 1 回だけ実行されます。

[Authorize] でコントローラ クラスをデコレートするか、要求が認証されているかどうかを確認して SignIn() を追加し、Authenticate コードを再度呼び出します。

public void SignIn() 
     { 
         // Send an OpenID Connect sign-in request. 
         if (!Request.IsAuthenticated) 
         { 
             HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectAuthenticationDefaults.AuthenticationType); 
         } 
     } 

問題は、SignIn() メソッドがアプリケーションで取得されず、[Authorize] 属性が何をするのか知りたいということです。

これらに関する洞察をいただければ幸いです。よろしくお願いします。

4

2 に答える 2

0

明示的な SignIn() アクションがある場合は、コントローラで [Authorize] 属性を使用しないでください。

認証 Cookie とセッション変数を台無しにしている可能性があります。このリンクを確認してください

詳細については。

于 2016-03-08T17:40:44.647 に答える