通过重写IAuthorizationFilter检查访问者是否授权,如果未授权就转到指定登陆页面去。


public
void
OnAuthorization(AuthorizationContext filterContext)
{
// 检查是否登录
if (filterContext.HttpContext.Session[ " LoginedUserId " ] == null )
{
// 跳转到登录页面
filterContext.HttpContext.Response.Redirect( " http://xxx.com/Account/Login " );
return ;
}
}
{
// 检查是否登录
if (filterContext.HttpContext.Session[ " LoginedUserId " ] == null )
{
// 跳转到登录页面
filterContext.HttpContext.Response.Redirect( " http://xxx.com/Account/Login " );
return ;
}
}
看上面的代码,假如Session为空是乎就会跳转,但事实上接下去会继续执行你的ActionResult,执行完了之后才会跳转!很可能你的ActionResult中调用Session就会出错!
解决办法:
filterContext.Result
=
new
HttpUnauthorizedResult();
//
返回未授权Result