Я пытаюсь запустить приложение OWIN/Katana, размещенное на IIS, с проверкой подлинности Windows, но независимо от того, что я делаю, я всегда получаю только GenericPrincipal
, который не прошел проверку подлинности, а не соответствующий WindowsPrincipal
.
My Startup.cs
:
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
WebApiConfig.Register(config);
app.UseWebApi(config);
}
}
Мой контроллер:
public class TestController : ApiController
{
[Authorize]
public string Get()
{
return "Test";
}
}
После просмотра запросов и отладки кода кажется, что проверка подлинности NTLM проходит успешно, но когда она достигает WebAPI, субъект не проходит проверку подлинности, поэтому он возвращает 401, заставляя IIS снова попытаться выполнить проверку подлинности Windows.
Фрагмент Web.config:
<system.web>
<authentication mode="Windows" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
Update
Похоже, что WindowsPrincipal
превращает его в фиктивное ПО промежуточного слоя, которое я добавил, но не в сам WebApi. Похоже, Katana в какой-то момент меняет принципала.