基于时间的身份验证和asp.net mvc中的操作

时间:2012-06-21 05:59:31

标签: asp.net-mvc-3 forms-authentication

asp.net mvc 3中是否有一个集成方式,允许根据一天中的时间进行身份验证和操作? 例如,如果是18:00,则不允许属于特定角色的用户登录,或者如果他们已经过身份验证,则会自动注销或无法执行操作。

我想在登录方法中我可以检查用户角色和时间,然后在每个操作上,我还会检查角色和时间以及许可但是有更简单的方法来实现这一点吗?

更新: 我想没有更简单的方法来设置时间和用户/角色,所以我最终实现了答案(解决方案)。

1 个答案:

答案 0 :(得分: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

        ...
    }
}

现在剩下的就是用这个自定义属性装饰你的控制器/动作。