AuthorizeAttribute的MVC集成测试

本文关键字:集成测试 MVC AuthorizeAttribute | 更新日期: 2023-09-27 18:21:16

在使用windows身份验证的intranet站点上,某些控制器方法被标记为"AuthorizeAttribute",用于控制对某些用户/组和角色的访问,我正在努力找出允许"测试用户"访问这些内容的最佳方式。

由于<位置>MVC(安全问题)已经过时了,这里最好的方法是什么?

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

  1. 一个自定义配置部分,本质上反映了<授权>截面
  2. 从"AuthorizeAttribute"继承的自定义属性,该属性根据自定义配置部分检查用户
  3. 使用配置转换删除QA和Release环境的自定义配置部分

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

AuthorizeAttribute的MVC集成测试

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

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

原件您可以使用#ifDEBUG来只添加调试代码的授权。

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

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