Я только что перешел на использование OWIN\Katana для веб-проекта api. Он использует проверку подлинности Windows. Кажется, это работает, но большинство моих интеграционных тестов нарушены. Ранее они использовали только встроенную память 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."}
Как выполнить проверку подлинности на тестовом сервере OWIN с внутренней памятью или хотя бы обходить аутентификацию?