加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 在ASP.NET MVC 3中覆盖/禁用授权

发布时间:2020-12-15 20:28:32 所属栏目:asp.Net 来源:网络整理
导读:我想知道是否可以禁用/覆盖所有授权属性. 在开发机器上,Active Directory组织与生产环境完全不同.当我在开发环境上开发/测试时,我必须“删除”所有授权属性. 在控制器操作方法中使用不同类型的活动目录组(在Authorize属性中). [Authorize]...[Authorize(Role
我想知道是否可以禁用/覆盖所有授权属性.

在开发机器上,Active Directory组织与生产环境完全不同.当我在开发环境上开发/测试时,我必须“删除”所有授权属性.

在控制器操作方法中使用不同类型的活动目录组(在Authorize属性中).

[Authorize]
...

[Authorize(Roles="domainHR")]
...

[Authorize(Roles="domainIT")]
...

提前致谢..

解决方法

我会做以下事情:

>编写自定义授权属性,该属性在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="domainHR")]
...

[MyAuthorize(Roles="domainIT")]
...

>始终在调试模式下开发并在发布模式下发布

如果您不希望绑定到Debug / Release事件,可以在项目配置中指定自己的条件编译符号 – 例如,DEVTEST并在步骤1代码中将DEVBEST替换为DEBUG.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读