[英]HandleAuthenticateAsync called even without [Authorize] attribute
[英]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.