當我們擴展Authorize屬性時,我在理解Authorization如何在MVC中工作時遇到了一些問題。自定義MVC授權如何工作?
所以在代碼中,我們擴展了AuthorizeAttribute這樣的:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class AuthExtendAttribute : AuthorizeAttribute
我們再添加擴展到全局過濾器的這樣的名單:
filters.Add(new AuthExtendAttribute());
然後操作方法裝飾與這樣的授權屬性:
[Authorize]
public bool DoStuff()
我的問題是,將t他的新擴展替換默認行爲[Authorize]屬性或將框架仍使用默認行爲,然後調用AuthExtendAttribute中的重寫方法?
另外,爲什麼我需要擴展添加到全局過濾器列表中,如果我可以簡單地裝飾與[AuthExtend]我的操作方法?
對於較新的MVC應用程序,我們不應該擴展授權屬性,而是我們應該使用新的基於策略的授權,這也是事實嗎?