Логин AD в Asp net core web api - PullRequest
0 голосов
/ 01 апреля 2020

У меня проблема с поиском пользователя в объявлении. Когда я запускаю свой API на локальном хосте, я могу получить данные о том, кто вошел в систему на компьютере, однако, когда я загружаю API на сервер IIS, он возвращает "" IIS APPPOOL \ Name api "" Как я могу поймать этого пользователя с помощью API работает на IIS

Мой контроллер:

 [Route("autorizar")]
        [HttpGet]
        public IActionResult IISAuthorize()
        {

            var name = HttpContext.User.Claims.FirstOrDefault(p => p.Type == ClaimTypes.Name)?.Value;
            return new ContentResult() { Content = $@"{ name }" };
        }
        // GET api/values/
        [HttpGet]
        public ActionResult<IEnumerable<string>>  Get()
        {
            //UserName = _httpContext.HttpContext.User.Identity.Name;
            //return Ok(UserName);
            //string UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
            string User4 = System.Environment.UserDomainName;
            string User5 = System.Environment.UserName;
            string User6 = User.Identity.AuthenticationType;
            string User7 = User.Identity.Name;
            string User8 = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

            // string User4 = User.Identity.Name;
            return new string[] { User4, User5, User6, User7, User8 };

        }

Мой запуск

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy("MyCustomCorsPolicyName",
                    builder => builder.WithOrigins("http://localhost:3000")
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        .AllowCredentials()
                   );
            });
            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
            services.AddAuthentication(IISDefaults.AuthenticationScheme);
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }
            app.UseCors("MyCustomCorsPolicyName");
            app.UseAuthentication();
            app.UseHttpsRedirection();
            app.UseMvc();

        }

Помогите мне!

...