Asp.net-Mvc-3

在 ASP.NET MVC 3 中覆蓋/禁用授權

  • June 3, 2021

我想知道是否可以禁用/覆蓋所有授權屬性。

在開發機器上,Active Directory 組織與生產環境完全不同。當我在開發環境中開發/測試時,我必須“刪除”所有授權屬性。

控制器操作方法中使用了不同類型的活動目錄組(在Authorize屬性中)。

[Authorize]
...

[Authorize(Roles="domain\HR")]
...

[Authorize(Roles="domain\IT")]
...

提前致謝..

我會做以下事情:

  1. 編寫自定義授權屬性,該屬性將在 Release 中作為預設值工作,並始終允許在 Debug 中執行操作,即
public class MyAuthorizeAttribute: AuthorizeAttribute
{
   protected override bool AuthorizeCore(HttpContextBase httpContext)
   {
       #if DEBUG
       return true;
       #else
       return base.AuthorizeCore(httpContext);
       #endif
   }
}
  1. 用您自己的替換程式碼中的所有現有Authorize屬性,即
[MyAuthorize]
...

[MyAuthorize(Roles="domain\HR")]
...

[MyAuthorize(Roles="domain\IT")]
...
  1. 始終以 Debug 模式開發並以 Release 模式發布

如果您不希望綁定到 Debug/Release 東西,您可以在項目配置中指定您自己的條件編譯符號 - 例如,並在步驟 1 程式碼中DEVTEST替換DEBUG為。DEVTEST

引用自:https://stackoverflow.com/questions/9783335