Asp.net-Mvc-3
在 ASP.NET MVC 3 中覆蓋/禁用授權
我想知道是否可以禁用/覆蓋所有授權屬性。
在開發機器上,Active Directory 組織與生產環境完全不同。當我在開發環境中開發/測試時,我必須“刪除”所有授權屬性。
控制器操作方法中使用了不同類型的活動目錄組(在Authorize屬性中)。
[Authorize] ... [Authorize(Roles="domain\HR")] ... [Authorize(Roles="domain\IT")] ...提前致謝..
我會做以下事情:
- 編寫自定義授權屬性,該屬性將在 Release 中作為預設值工作,並始終允許在 Debug 中執行操作,即
public class MyAuthorizeAttribute: AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { #if DEBUG return true; #else return base.AuthorizeCore(httpContext); #endif } }
- 用您自己的替換程式碼中的所有現有
Authorize屬性,即[MyAuthorize] ... [MyAuthorize(Roles="domain\HR")] ... [MyAuthorize(Roles="domain\IT")] ...
- 始終以 Debug 模式開發並以 Release 模式發布
如果您不希望綁定到 Debug/Release 東西,您可以在項目配置中指定您自己的條件編譯符號 - 例如,並在步驟 1 程式碼中
DEVTEST替換DEBUG為。DEVTEST