我刚刚开始将 OWIN\Katana 用于 Web api 项目。它使用 Windows 身份验证。这似乎有效,但我的大多数集成测试都失败了。他们以前只是使用 In-Memory HttpServer
,但我已改为使用Microsoft.Owin.Testing.TestServer
. 我在我的测试设置中替换了这样的东西:
var config = new HttpConfiguration { IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always };
config.EnableQuerySupport();
Server = new HttpServer(config);
MyConfigClass.Configure(config);
WebApiConfig.Register(config);
用一个更简单的:
TestServer = TestServer.Create<Startup>();
但是以前我可以将以下内容用于内存服务器的“假”身份验证:
Thread.CurrentPrincipal = new ClientRolePrincipal(new HttpListenerBasicIdentity(Username, Password));
现在这行不通了。对于所有请求,我得到以下信息:
System.Exception : {"Message":"Authorization has been denied for this request."}
如何使用 In-Memory OWIN 测试服务器进行身份验证或至少绕过身份验证?