1

ASP.NET MVC アプリケーションを開発しており、ユーザーのログイン履歴を記録する必要があります。ここでスタックオーバーフローで最後に見たものと同様のものが必要です(履歴を保持します。SOがこれを行うかどうかはわかりません)。私はそれを行うための最良の方法は何ですか?

  • Global.asax: Application_AuthenticateRequest、Application_AuthorizeRequest、Session_Start
  • Site.Master

他に、みんなの長所と短所は?

ありがとう

4

3 に答える 3

2

メンバーシップ プロバイダーは、ValidatingPasswordイベントを公開します。監査をコントローラー内ではなく、それに配線します。これをさらに簡単にするために、これを処理するためのコードを記述するのではなく、WebEventそれを起動してから、<heartbeat>で利用可能な機能を使用して情報を取得することができます。web.config

また、失敗の記録を残すことが目標の場合、失敗したログインはデフォルト設定でイベント ログに自動的に送信されることに注意してください。

PS: 質問を読み直してください。どのような方法で持ち運ぶにしても、Site.Master はこのようなことを行うには不適切な場所です。2 番目のマスター ページを導入するとどうなるでしょうか。または、テンプレートのものをテンプレートにレンダリングします。

于 2009-06-11T12:08:17.293 に答える
2

まず、ログイン履歴を保持するデータベース テーブルを作成します。ベース プロジェクトを使用する場合は、AccountController の LogOn アクションに移動し、FormsAuth.SignIn 行の後に履歴テーブルにレコードを書き込むコードを配置します。

        if (!ValidateLogOn(userName, password))
        {
            return View();
        }

        FormsAuth.SignIn(userName, rememberMe);

        //*** Write userName to history table *****

        if (!String.IsNullOrEmpty(returnUrl))
        {
            return Redirect(returnUrl);
        }
        else
        {
            return RedirectToAction("Index", "Home");
        }
于 2009-06-11T11:51:51.810 に答える
1

私はこれをやめます:

global.asaxをprotectedvoidSession_Start()と認証ルーチンに入れました。

于 2009-06-12T14:02:15.233 に答える