【发布时间】:2026-02-10 19:35:01
【问题描述】:
我只是想对我的自定义 ApiController 进行单元测试。在我的自定义控制器中,我重写了 Initialize 方法来评估授权标头。
所以我的问题是,我有 2 个请求标头可用。
protected override void Initialize(HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
// Headers 1
var headersOne = controllerContext.Request.Headers;
// Headers 2
var headersTwo = HttpContext.Current.Request.Headers;
}
但这不是问题本身。问题是,标题不匹配。因此,对于生产性操作:我必须在哪里寻找授权标头。我必须在哪里为我的测试场景应用我的授权标头。
目前我将授权标头应用于controllerContext:
var fakeControllerContext = new HttpControllerContext
{
Request = new HttpRequestMessage
{
RequestUri = new Uri("http://localhost/api/test"),
Headers =
{
{ "Authorization", "Fake Authorization-Header"}
}
}
};
但正如我已经说过的。该标头稍后在 HttpContext.Current.Request.Headers 中不可用。
你能帮帮我吗?不幸的是,我不完全了解哪个上下文可以实现什么目的。
【问题讨论】:
-
也许这就是答案:*.com/questions/31189028/…
标签: c# unit-testing httpcontext request-headers asp.net-apicontroller