【问题标题】:MVC Integration Testing with AuthorizeAttribute使用 AuthorizeAttribute 进行 MVC 集成测试
【发布时间】:2012-01-23 20:53:22
【问题描述】:

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

由于 与 MVC(安全问题)无关,这里最好的方法是什么?

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

  1. 本质上反映 部分的自定义配置部分
  2. 一个继承自“AuthorizeAttribute”的自定义属性,它根据自定义配置部分检查用户
  3. 使用配置转换删除 QA 和发布环境的自定义配置部分

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

【问题讨论】:

  • 不确定我是否理解。您不应该将测试用户添加到适当的组/角色,而不是更改代码和配置中的任何内容吗?
  • 在 QA 中,它是专门的测试用户,所以是的,正如你所说。但是从Debug到Staging,测试用户通常是我。而且我没有创建域帐户的权力...

标签: c# asp.net-mvc asp.net-mvc-3 windows-authentication


【解决方案1】:

更新 我最初写的内容在类或方法上使用了属性语法,但如果您使用的是 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 2013-04-07
    • 2019-12-17
    • 2015-12-28
    • 2020-05-26
    相关资源
    最近更新 更多