2023年6月20日发(作者:)

重写AuthorizeAttribute实现⾃⼰的权限验证在MVC系统开发中,难免会遇到权限验证问题,解决这个问题的⽅法很多,这⾥使⽤⾃定义AuthorizeAttribute来实现,代码如下: public class MyAuthorizeAttribute : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { if (s["yourset"] == null) return false; return izeCore(httpContext); //bool result = false; //if (httpContext == null) //{ // throw new ArgumentNullException("httpContext"); //} //string[] users = (','); //string[] roles = (','); //if (!enticated) // return false; //if ( != 0) //{ // // we can get the roles by our bussiness logic here // List rightRoles = new List { "admin", "owner" }; // foreach (var role in roles) // { // if (ns(role)) // { // result = true; // break; // } // } //} //if (!result) //{ // Code = 403; //} //return result; } public override void OnAuthorization(AuthorizationContext filterContext) { orization(filterContext); if (Code == 403) { = new RedirectResult("/Home/Index"); } } }这样,我们就可以在我们的Action上⽤它来设置访问权限了。

2023年6月20日发(作者:)

重写AuthorizeAttribute实现⾃⼰的权限验证在MVC系统开发中,难免会遇到权限验证问题,解决这个问题的⽅法很多,这⾥使⽤⾃定义AuthorizeAttribute来实现,代码如下: public class MyAuthorizeAttribute : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { if (s["yourset"] == null) return false; return izeCore(httpContext); //bool result = false; //if (httpContext == null) //{ // throw new ArgumentNullException("httpContext"); //} //string[] users = (','); //string[] roles = (','); //if (!enticated) // return false; //if ( != 0) //{ // // we can get the roles by our bussiness logic here // List rightRoles = new List { "admin", "owner" }; // foreach (var role in roles) // { // if (ns(role)) // { // result = true; // break; // } // } //} //if (!result) //{ // Code = 403; //} //return result; } public override void OnAuthorization(AuthorizationContext filterContext) { orization(filterContext); if (Code == 403) { = new RedirectResult("/Home/Index"); } } }这样,我们就可以在我们的Action上⽤它来设置访问权限了。