0

ASP .NET MVC 3 フレームワークを使用して、完全な Web アプリケーションの開発を開始しました。私は MVC 3 の初心者開発者です。


次のロジックを実装する方法が必要です。

アプリケーションがブラウザから HTTP リクエストを受信したときに、このブラウザでセッションが有効かどうかを確認したいと考えています。

そうでない場合は、接続コントローラーの Index アクション メソッドを実行します。Index アクション メソッドは HTML5 ページをブラウザーに返します。これにより、ユーザーはアプリケーションに対して自分自身を認証できます。

セッションが有効な場合、 IdUtilSession および IdSocSession セッション変数が保存されているかどうかを確認したいと思います。両方のセッション変数が保存されていない場合は、接続コントローラーの Index アクション メソッドを実行します。


セッション変数の管理に関する MSDN ドキュメントを読みました。アプリケーションでセッション変数を管理できると思います。

処理する必要があるイベントを知りたい - 「アプリケーションが HTTP リクエストを受信したとき」。ASP .NET アプリケーションのライフ サイクルに関する次の MSDN ドキュメント ページを読みました: http://msdn.microsoft.com/en-us/library/ms178473.aspx Do I need to Global.asax ファイルでこれらのイベントのいずれかを処理しますか?

今後ともよろしくお願いいたします

4

1 に答える 1

1

これを達成するためのより MVC 的な方法は、(ASP.NET MVC ではなく従来の ASP.NET でより一般的に使用されるイベントに依存する代わりに) カスタムの承認属性を記述することです。

public class MyAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        var authorized = base.AuthorizeCore(httpContext);
        if (!authorized)
        {
            return false;
        }

        var session = httpContext.Session;
        return session["IdUtilSession"] != null &&
               session["IdSocSession "] != null;
    }
}

デフォルト属性を使用する代わりに[Authorize]、カスタム[MyAuthorize]属性を使用します。

このI want to execute the Index action method of my Connection controller部分に関する限り、 web.configloginUrlのタグに属性を設定<forms>して、適切な URL を指すようにすることができます。

于 2012-01-09T21:43:38.077 に答える