0

ASP.NET MVC Web アプリケーションがあります。

私のアプリケーションにはようこそページがあり、アプリケーションの使用を許可する前に、ユーザーがそのページでいくつかの手順を完了することを望んでいます。

私は2つのことを達成しようとしています:

  1. ユーザーが必要な手順を完了するまで、常にそのページにリダイレクトされるようにします。注: ユーザーはウェルカム ページにいるときにログインしています。

  2. 特定のコントローラーへのいくつかの特定の要求を除いて、そのユーザーがいずれかのコントローラーに対して行ったすべての要求を無視します。

上記を行う正しい方法は何ですか?

ありがとう。

4

4 に答える 4

1

私がやったことは次のとおりです。

  1. Controller から派生するクラスを作成し、ログインしていない場合にリダイレクトするロジックを追加します。

    public class CustomController : Controller
    {
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
    
            if (!LoggedIn) //Here you decide how to check if the user is Logged in
            {
                filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new
                {
                    controller = "YourLogInControllerName",
                    action = "YourLoginActionName"
                }));
            }
            else
            {
                base.OnActionExecuting(filterContext);
            }
        }
    }
    
  2. CustomController次に、すべてのコントローラーがこのクラスから派生します。

于 2013-10-01T07:17:28.143 に答える
0

a を使用しRole、ユーザーがこれを持っている場合にのみ、他のコントローラーへのアクセスを許可しますRoleRole必要な手順を完了したら、ユーザーをこれに追加します。

http://msdn.microsoft.com/en-us/library/9ab2fxh0.aspxを参照してください。

于 2013-10-01T10:31:18.317 に答える
0

設定した基準を満たしていない場合に、使用をログイン ページにリダイレクトするカスタム認証属性を作成しました。これにより、[AuthorizeAdminArea]すべてのエリアへのアクセスを停止したベースコントローラーで使用できるようになりました。その後[AllowAnonymous]、ログイン領域へのアクセスを許可していました。

SimpleMemshipProviderを見てください。

于 2013-10-01T07:20:41.143 に答える
0

そのためにセッションを使用したり、訪問者がこれらの「必要な手順」を完了したことを確認する必要がある場合は他の (より永続的な) ストレージを使用できるように思えます。

于 2013-10-01T07:16:08.490 に答える