【发布时间】:2013-08-04 22:18:42
【问题描述】:
所以我在 [Authorize] 标签上找到了一些启发我的点点滴滴,但没有任何东西可以解决我的问题。
我的情况是我有 Web Api 方法,我想使用 RestSharp 进行集成测试。但是 RestSharp 正在获取我的登录页面,而不是调用结果。
[Authorize]
public Item GetItem([FromBody] int id)
{
return service.GetItem(id);
}
该产品使用自定义登录系统,而我真正想要的是一种仅在集成测试中禁用 [Authorize] 标志的方法。但是我读到您可以允许匿名用户并且它会“禁用”徽章,因此在解决方案中,我有一个集成测试项目,并且在该项目中我有一个 App.config 文件。在我放的那个文件中:
<location>
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
但这似乎也不起作用。任何关于发生了什么、为什么它不工作以及可以做些什么来使它工作的解释将不胜感激。
我试图设置一个 Thread.CurrentPrincipal 但这不起作用(也许我做错了 - 你能在代码中设置“任何东西”来获得授权吗?)。如果有帮助的话,身份验证会在 httpmodule 中处理。
【问题讨论】:
标签: c# asp.net-web-api web-config integration-testing authorize-attribute