2

ユーザーがログインすると、セッションが設定されます。すべてのコントローラー(すべてではなく、ログインユーザーが必要なコントローラー)でユーザーセッションを確認したい。Web フォームでは、page_load または基本クラスを使用して実行できます。これを行うためにasp mvcで推奨されるアプローチは何ですか? (ベースコントローラーを使用するのは悪い考えだと思いました)

4

2 に答える 2

1

inherit byでコントローラーを作成し(これでセッションを確認してください)、base controllerこのコントローラーを必要なコントローラーに参照できます。

ベースコントローラー:

 public class BaseController : Controller
    {
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //check Session here
        }
    }

派生コントローラー:

 public class ABCController : BaseController
    {
       //Your code
    }
于 2013-10-10T10:52:31.257 に答える
1

これには 2 つの方法があります。

AuthorizeAttribute から継承するカスタム承認属性を作成し、すべてのセッションと承認コードを 1 か所で実行するか、

必要なセッション チェックを行う独自のアクション フィルターを作成し、両方の属性をアクション/コントローラーにアタッチすることができます。

これらの機能のいずれかを独立して動作させたいかどうかによって異なります。そうであれば、後者の提案を選択してください。

于 2013-10-10T10:55:10.043 に答える