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事件,可以在项目配置中指定自己的条件编译符号 – 例如,DEVTEST并在步骤1代码中将DEVBEST替换为DEBUG.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。