1

ログインページで利用可能な記憶オプションがあります。誰かプロセスを説明してくれませんか?つまり、ユーザーがページに移動するたびにログイン プロセスを実行していますか? または、ユーザーは常にログインしていて、アプリケーションはユーザーがログオフして再度ログインしたときにのみ資格情報をチェックしますか? 私が尋ねる理由はIsEnabled、DB のユーザー テーブルにプロパティがあり、ユーザーを無効にしたいからです。ただし、ユーザーがログオフして再度ログインしない限り、このプロパティは何の違いもないようです。何か案は?ありがとう。

4

2 に答える 2

3

ユーザーが有効な資格情報を使用して初めてログインすると、Cookie が作成され、クライアント側に保存されます。Web サイトへの後続の各要求で、Cookie がサーバーに渡され、有効期限が切れていないことを確認するために検証されます。ユーザーにサイトへのアクセスを許可する必要があるかどうかを確認できるようにする場合は、Global.asax ファイルIsEnabledのイベントで独自の認証ロジックを作成する必要があります。Application_AuthenticateRequest

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
    // Your authentication logic
}

ここでフックできるイベントの完全なリストを表示できます: http://www.dotnetcurry.com/ShowArticle.aspx?ID=126

于 2013-01-05T18:14:43.607 に答える
0

このバリアントを使用しました この属性をコントローラーに追加します

public class IsLocked : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (!httpContext.Request.IsAuthenticated)
            return false;

        var session = DependencyResolver.Current.GetService<ISession>();

        var userDb = session.Query<Admin>().SingleOrDefault(x => x.Email == httpContext.User.Identity.Name);

        if (userDb == null)
            return false;

        return userDb.Status == null || userDb.Status.Value == false;
    }
}
于 2013-03-11T10:17:36.720 に答える