Я пытаюсь написать собственное ПО промежуточного слоя аутентификации Owin. В настоящее время я пишу только фиктивный вариант, даже более простой, чем этот а>.
Согласно этому и другим руководствам, кажется, я мог бы вернуться null в AuthenticateCoreAsync моего DummyAuthenticationHandler, чтобы указать на сбой аутентификации. Так я и сделал
protected override Task<AuthenticationTicket> AuthenticateCoreAsync()
{
return null;
}
Это нормально, если я возвращаю новый AuthenticationTicket с каким-то фиктивным ClaimsIdentity в нем, но когда я возвращаю null, я получаю это исключение при вызове любого контроллера.
[NullReferenceException: Object reference not set to an instance of an object.]
Microsoft.Owin.Security.Infrastructure.<BaseInitializeAsync>d__0.MoveNext() +450
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52
Microsoft.Owin.Security.Infrastructure.<Invoke>d__0.MoveNext() +264
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.<RunApp>d__5.MoveNext() +191
....
Я использую Web Api 2 с Ninject, но, похоже, даже я пытался комментировать материал Niject в Startup, но это все равно не сработает. и все мои зависимости обновлены. Это мой Стартап.
{
HttpConfiguration configuration = new HttpConfiguration();
application.UseDummyAuthentication();
configuration.SuppressDefaultHostAuthentication();
configuration.Filters.Add(new HostAuthenticationFilter("dummy"));
WebApiConfig.Register(configuration);
application.UseNinjectMiddleware(() =>
{
return NinjectWebCommon.CreateKernel(WebApiConfig.CreateConfigurationDelegate());
});
application.UseNinjectWebApi(configuration);
}
Я чешу голову в течение дня, очень хотелось бы получить некоторую помощь.