0

asp.net mvc 3に統合された方法があり、時刻に基づいて認証とアクションを許可しますか?たとえば、18:00の場合、特定の役割に属するユーザーはログインを許可されません。または、既に認証されている場合は、自動的にログアウトされるか、アクションを実行できなくなります。

ログイン方法では、ユーザーの役割と時刻を確認してから、各アクションで役割と時刻を確認して許可することができると思いますが、これを実行する簡単な方法はありますか?

更新:時間とユーザー/ロールを設定する簡単な方法はないと思うので、答え(ソリューション)を実装することになりました。

4

1 に答える 1

0

カスタム属性を記述して、必要なチェックを実行するメソッドAuthorizeをオーバーライドできます。AuthorizeCore

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

        // At this stage standard authorization passed =>
        // you could now check the user roles in the database
        // and the time of the day and return true or false from here

        ...
    }
}

あとは、このカスタム属性でコントローラー/アクションを装飾するだけです。

于 2012-06-21T06:23:52.190 に答える