Я создаю приложение .NET Core 2.2, используя graphql-dotnet и GraphQL HTTP Middleware. Я пытаюсь заполнить свой UserContext именем пользователя, которое предоставляется аутентификацией Windows (NTLM / Kerberos / Negotiate).
Мне не удается заполнить httpContext.User.Identity
сведениями о пользователе, которые предоставляют проверку подлинности Windows. Я также пытался использовать пакет graphql-dotnet/authorization
, но безуспешно
Сама аутентификация Windows работает просто отлично. Если я создам обычный Controller
, добавлю атрибут [Authorize]
и получу доступ к User.Identity.Name
в функции контроллера, информация о текущем пользователе будет доступна.
Одним из обходных путей может быть создание контроллера WebApi, использование атрибута [Authorize]
и обработка запроса GraphQL вручную. Это будет означать, что я не использую GraphQL HTTP Middleware, который я хотел бы продолжать использовать.
Было бы желательно, если бы кто-нибудь знал, как получить имя пользователя подключенного пользователя, используя graphql-dotnet, промежуточное ПО GraphQL HTTP и аутентификацию Windows в сочетании.