标签:options tomat option attribute sys ati contex nbsp mat
[AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)] public class PurviewEnumAttribute : Attribute { public string PurviewString { get; set; } public PurviewEnumAttribute(string purview) { this.PurviewString = purview; } }
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public class SuperICAuthorizeAttribute : AuthorizeAttribute { public string[] ActionPowers { get; set; } public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext) { string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; string actionName = filterContext.ActionDescriptor.ActionName; object[] attributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(PurviewEnumAttribute), true); if (attributes != null && attributes.Count() > 0) { string power = (attributes[0] as PurviewEnumAttribute).PurviewString; this.ActionPowers = power.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); } base.OnAuthorization(filterContext); } protected override bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext == null) { return false; } if (ActionPowers == null) { return true; } if (ActionPowers.Length == 0) { return true; } // if (ActionPowers.Any(httpContext.User.IsInRole)) if (ActionPowers.Any((new string[]{"1","2","3","4"}).Contains)) { return true; } else { return false; } } }
[PurviewEnum("2")] [SuperICAuthorize] public ActionResult Index()
标签:options tomat option attribute sys ati contex nbsp mat
原文地址:http://www.cnblogs.com/shi2310/p/7405923.html