您的位置:首页 > 编程语言 > ASP

ASP.NET MVC中重写IAuthorizationFilter的需要注意的问题

2010-05-03 16:11 393 查看
通过重写IAuthorizationFilter检查访问者是否授权,如果未授权就转到指定登陆页面去。

代码

public void OnAuthorization(AuthorizationContext filterContext)
{
//检查是否登录
if (filterContext.HttpContext.Session["LoginedUserId"] == null)
{
//跳转到登录页面
filterContext.HttpContext.Response.Redirect("http://xxx.com/Account/Login");
return;
}
}

看上面的代码,假如Session为空是乎就会跳转,但事实上接下去会继续执行你的ActionResult,执行完了之后才会跳转!很可能你的[b]ActionResult中调用Session就会出错![/b]

解决办法:

filterContext.Result = new HttpUnauthorizedResult();//返回未授权Result
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: