Я настраиваю служба аутентификации, например:
Код: Выделить всё
services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
.AddNegotiate();
services.AddAuthorization(options =>
{
options.DefaultPolicy = new AuthorizationPolicyBuilder(NegotiateDefaults.AuthenticationScheme)
.RequireAuthenticatedUser()
.Build();
}
В частности, однажды развернуто, если я попытаюсь вызвать конечную точку, отмеченную [Authorize], браузер правильно отображает мне приглашение для входа в систему, но после ввода моих учетных данных серверная часть отвечает общей ошибкой 500.
Я заметил одну важную вещь: если я попытаюсь получить доступ к приложению изнутри самого сервера через https://localhost, аутентификация работает, но если я использую полный URL-адрес компьютера, например: https: //myserver.domain.local, он не работает, и я получаю ошибку 500.
Значит, это может быть связано с сетевым прокси-сервером или чем-то в этом роде? Как я могу это правильно отладить? Я попытался включить всю регистрацию на уровне «отладки», и вот что я вижу, когда получаю ошибку:
Идентификатор соединения «0HN6OHVHNEJKS», Запрос id "0HN6OHVHNEJKS:00000007": приложением было создано необработанное исключение.
System.InvalidOperationException: между запросами подтверждения аутентификации был получен анонимный запрос.
в Microsoft.AspNetCore.Authentication.Negotiate.NegotiateHandler.HandleRequestAsync()
в Microsoft.AspNetCore.Authentication.Negotiate.NegotiateHandler.HandleRequestAsync()
в Microsoft. AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
в Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
в Microsoft.AspNetCore.Session.SessionMiddleware. Invoke(контекст HttpContext)
в Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(промежуточное ПО ExceptionHandlerMiddleware, контекст HttpContext, задача задачи)
в Microsoft.AspNetCore.Diagnostics. ExceptionHandlerMiddleware.HandleException(контекст HttpContext, ExceptionDispatchInfo edi)
в Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(промежуточное ПО ExceptionHandlerMiddleware, контекст HttpContext, задача задачи)
в Microsoft .AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](приложение IHttpApplication`1)
Кажется, трассировка стека предполагает Во время рукопожатия я выполняю другие подключения, но я проверил на панели «Сеть» браузера и обнаружил, что у меня нет дополнительных ожидающих подключений.
Есть идеи?
Подробнее здесь: https://stackoverflow.com/questions/790 ... entication
Мобильная версия