我正在使用 HttpClient 和自托管 api 对我的 WebAPI 进行单元测试。我有一个基于客户端发送的 API 密钥的自定义 MessageHandler 设置主体。我的控制器受 [Authorize] 属性保护,但我的测试调用进入,因为 User.Identity 填充了我的 Windows 用户名。从我的测试中进行 HttpClient 调用时,如何确保未设置用户?
问问题
341 次
1 回答
2
MessageHandler
如果 API 密钥未提供或无效,您的自定义应将 User 设置为 null:
IPrincipal principal = null;
if (IsValidApiKey(someKey))
{
// The provided API key is valid => we populate the principal
principal = ...
}
Thread.CurrentPrincipal = principal;
if (HttpContext.Current != null)
{
HttpContext.Current.User = principal;
}
于 2013-05-17T11:55:02.993 回答