2017-05-04 25 views
0

我々は、b2cの認証が曖昧なASP.NET MVC Webアプリケーションを持っています。 mvcアプリケーションにはいくつかのコントローラとビューがあります。ユーザーがコントローラにアクセスしたいときはいつでも、サインインしているかどうかをチェックしていますか?それに基づいて、ユーザーがすでに署名されている場合にのみ、私たちは彼にアクセスします。すべてのコントローラの.csファイルには、次のようなコードを入れました。AzureのActive Directory(ASP.NET MVC)

if (Request.IsAuthenticated) 
     { 
     some code; 
     return View(); 
     } 
     else 
     { 
     return RedirectToAction("Login", "Home"); 
     } 

コントローラの各アクションメソッドには、このタイプのコードがあります。そのうまくいっても大丈夫ですが、ログインページ上で頻繁にシステムからユーザを自動的に追い出して再署名します。

Ca誰でも私はこのタイプのコードを各コントローラのmvcアプリケーションに集中させることができますので、システムから私を追い出すべきではありません。助けてください。ありがとう。

答えて

1

ASP.NET MVCビューへのアクセスを制限するには、ビューをレンダリングするアクションメソッドへのアクセスを制限します。これを達成するために、MVCフレームワークはAuthorizeAttributeクラスを提供します。

これはうまく機能しますが、ほとんどの場合、自動的にログインページのユーザーをシステムから自動的に追い出して再署名します。

Webセッションが期限切れになった後、WebアプリケーションはWebリクエストをログインページにリダイレクトしますか?私が正しく理解していれば、これは期待される動作です。また、ユーザーがアクティブなときにWebアプリケーションを有効にしたい場合は、SlidingExpirationを有効にすることができます。

+0

authorize属性はリダイレクト機能を提供しますか?私たちは、もしあなたが "localhost:44316/Affiliated/Affiliates/115"と思われるようなアプリケーション固有のURLを入力すると、ユーザーが夢中になったら、このURLを見ることができます。しかし、ユーザーがログアウトして誰かがこのURLを入力すると、そのページはログインページにリダイレクトされます。 –

+0

ウェブアプリケーションに '401'エラーがある場合、特定のページに自動的にリダイレクトするには、[LoginPath](https://msdn.microsoft.com/en-us/library/microsoft.owin.security)を設定する必要があります。 cookies.cookieauthenticationoptions.loginpath(v = 117).aspx)。 –

関連する問題