MVC許可權驗證過濾器

來源:互聯網
上載者:User

標籤:options   tomat   option   attribute   sys   ati   contex   nbsp   mat   

Action屬性,許可權設定屬性  
  [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)]    public class PurviewEnumAttribute : Attribute    {        public string PurviewString { get; set; }         public PurviewEnumAttribute(string purview)        {            this.PurviewString = purview;        }    }

 


Action屬性,許可權驗證屬性
 
  [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;            }        }    } 

 


使用:Index需要許可權為2的才能夠進入,SuperICAuthorize過濾器中驗證是否具有2的許可權
[PurviewEnum("2")][SuperICAuthorize]public ActionResult Index() 

MVC許可權驗證過濾器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.