我想知道是否可以禁用/覆盖所有授权属性.
在开发机器上,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事件,可以在项目配置中指定自己的条件编译符号 – 例如,DEVTEST并在步骤1代码中将DEVBEST替换为DEBUG.