重写AuthorizeAttribute实现自己的权限验证

在MVC系统开发中,难免会遇到权限验证问题,解决这个问题的方法很多,这里使用自定义AuthorizeAttribute来实现,代码如下:

复制代码
   
   
public class MyAuthorizeAttribute : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext.Request.Cookies[ " yourset " ] == null ) return false ; return base .AuthorizeCore(httpContext); // bool result = false; // if (httpContext == null) // { // throw new ArgumentNullException("httpContext"); // } // string[] users = Users.Split(','); // string[] roles = Roles.Split(','); // if (!httpContext.User.Identity.IsAuthenticated) // return false; // if (roles.Length != 0) // { // // we can get the roles by our bussiness logic here // List<string> rightRoles = new List<string> { "admin", "owner" }; // foreach (var role in roles) // { // if (rightRoles.Contains(role)) // { // result = true; // break; // } // } // } // if (!result) // { // httpContext.Response.StatusCode = 403; // } // return result; } public override void OnAuthorization(AuthorizationContext filterContext) { base .OnAuthorization(filterContext); if (filterContext.HttpContext.Response.StatusCode == 403 ) { filterContext.Result = new RedirectResult( " /Home/Index " ); } } }
复制代码

这样,我们就可以在我们的Action上用它来设置访问权限了。


转载于http://www.lishango.com http://www.cnblogs.com/wangjq/archive/2011/03/08/1977092.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值