簡體   English   中英

即使未使用屬性也會調用自定義授權屬性

[英]Custom Authorize Attribute being called even if attribute has not being used

我在ASP.Net MVC 5中遇到以下問題。即使我沒有在代碼中的任何位置添加屬性,也正在調用OnAuthorization方法。

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
    public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        public override void OnAuthorization(AuthorizationContext filterContext)
        {

        }
    }

我在Global.asax下添加了過濾器:

AreaRegistration.RegisterAllAreas();
GlobalFilters.Filters.Add(new CustomAuthorizeAttribute());

僅當將屬性添加到類或方法時,才不應該調用OnAuthorization方法嗎?

僅當將屬性添加到類或方法時,才不應該調用OnAuthorization方法嗎?

部分是。 但是您需要知道ASP.Net MVC具有全局篩選器的概念。 當您不需要重復自己時(違反DRY原理),將使用全局過濾器。 它可以幫助您集中和配置需要對所有控制器執行的過濾器。

這條線

GlobalFilters.Filters.Add(new CustomAuthorizeAttribute());

是在全局添加過濾器,因此即使您未將filter屬性應用於控制器類或操作,這也是正常的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM