Как аутентифицировать пользователя с помощью Windows аутентификации, на странице blazor, размещенной в службе Windows

Я разместил приложение Blazor (NET.5) в службе Windows. Это простой веб-интерфейс для вызова методов службы, но мне нужна проверка подлинности Windows для пользователя, подключающегося к странице Blazor. И если я отлаживаю(не ISSExpress) на локальном компьютере, то моя учетная запись Windows отображается, но при запуске службы на сервере я не вижу логина пользователя и не получаю авторизацию. Насколько я понимаю, хостинг предоставляется Kestrel при размещении в службе Windows. Что нужно сделать, чтобы получить логин пользователя входящего на страницу?

Мой Startup.cs

services.AddRazorPages();
services.AddServerSideBlazor();
services.AddHostedService<Worker>();
services.AddSession();
services.Configure<HostOptions>(x => x.ShutdownTimeout = TimeSpan.FromMinutes(5));
services.AddAuthenticateCustom(Configuration["AppInit:AppName"], Configuration["AppInit:AppKey"]);
services.AddAuthorization();

 app.UseSession();
 app.UseAuthentication();
 app.UseAuthorization();
 app.UseEndpoints(endpoints =>...

Я также использую AuthenticationCustomHandler внутри своего расширения при добавлении схемы авторизации.

 public class AuthenticationCustomHandler : AuthenticationHandler<AuthenticationSchemeCustomOptions>
    {
        public const string ShemaName = "CustomAuthenticate";
        protected override async Task<AuthenticateResult> HandleAuthenticateAsync()
        {
            // Make a new copy of the user for each request, they are mutable objects and
            // things like ClaimsTransformation run per request.
            WindowsIdentity winIdentity;
            ClaimsPrincipal principal;
            if (OperatingSystem.IsWindows())
            {
                //For now only Windows
                winIdentity = WindowsIdentity.GetCurrent();
            }
            else
            {
                return AuthenticateResult.NoResult();
            }
    //here my logic authenticate based on Windows login
        }
    }

Настройка службы

Я также пытался использовать пакет Negotiate для простого отображения User.Name на странице, но это не сработало для службы.


Ответы (0 шт):