繁体   English   中英

使用AuthorizeAttribute进行MVC集成测试

[英]MVC Integration Testing with AuthorizeAttribute

在使用Windows身份验证的Intranet站点上,某些控制器方法被标记为“AuthorizeAttribute”控制对某些用户/组和角色的访问,我试图找出允许“测试用户”访问这些内容的最佳方法。

由于<location>不在MVC(安全问题)的表格中,这里最好的方法是什么?

我的第一个想法是实现以下内容:

  1. 自定义配置部分,基本上镜像<authorization>部分
  2. 继承自“AuthorizeAttribute”的自定义属性,该属性根据自定义配置部分检查用户
  3. 使用config transforms删除QA和Release环境的自定义配置部分

有更简单/更好的方法???

更新我最初编写的内容使用类或方法上的属性语法,但如果您使用的是MVC3,则还可以在(global.asax.cs)中使用全局操作过滤器,因此您只需执行一次。

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
#if DEBUG
    filters.Add(new AuthorizeAttribute() {Users="YourAccount"});
#endif
    //Your other global action filters
}

原始您可以使用#if DEBUG仅添加授权到调试代码。

#if DEBUG
    [Authorize(Users = "YourAccount")]
#endif

Authorize属性允许多个,因此您不必重复生产授权用户列表或使用#else。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM