如何在MVC应用程序中做一个非常简单的安全模型?

Exi*_*tos 0 asp.net-mvc asp.net-mvc-3

我想做类似以下的事情

if (Session["UserId"] == null)
            {
                RedirectToRoute("Default");
            }
Run Code Online (Sandbox Code Playgroud)

因此,任何未被授予会话(通过我的登录页面)的人都将被踢出登录页面.我该如何做到这一点呢

1)我选择的所选行动2)如果需要,所有行动

ale*_*exn 5

最干净的方法是使用动作过滤器来实现它.这样的事情应该让你开始:

class UserLoggedInAttribute : AuthorizeAttribute {
    public override void OnAuthorization(AuthorizationContext filterContext) {
        if(filterContext.HttpContext.Session["UserId"] == null) {
            filterContext.Result = new RedirectToRouteResult("Default");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,只需使用此属性修饰控制器和/或操作:

[UserLoggedIn]
public class YourController {

}
Run Code Online (Sandbox Code Playgroud)