.net core 2 web api Аутентификация Windows с угловым интерфейсом - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь использовать проверку подлинности Windows в веб-интерфейсе .net core 2.1 с интерфейсом Angular 6.По сути, я пытаюсь получить имя пользователя Windows на странице.Насколько я понимаю, для достижения этого мне нужно сделать вызов в API (используя withCredentials по запросу клиента), а затем в API должно быть заполнено свойство User.Identity.Name - но оно всегда нулевое.

Я не знаю, что я что-то упустил или мое понимание просто неверно ..

В файле launchSettings.json у меня есть:

  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": true, 
    "anonymousAuthentication": false, 
    "iisExpress": {
      "applicationUrl": "http://localhost:2821",
      "sslPort": 44341
    }
  }

Мой запуск.cs выглядит следующим образом:

public void ConfigureServices(IServiceCollection services)
{
   services.Configure<IISOptions>(options => {
      options.AutomaticAuthentication = true;
    });
    services.AddAuthentication(IISDefaults.AuthenticationScheme);
    services.AddMvc.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
   if (env.IsDevelopment())
   {
      app.UseDeveloperExceptionPage();
   }
   else
   {
      app.UseHsts();
   }
   app.UseAuthentication();
   app.UseMvc();
}

Мой Program.cs выглядит следующим образом:

public class Program
{
   public static void Main(string[] args)
   {
      CreateWebHostBuilder(args).Build().Run();
   }

   public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
      WebHost.CreateDefaultBuilder(args)
         .UseIISIntegration()
         .UseStartup<Startup>();
}

На клиенте моя угловая служба выглядит так:

var headers = new HttpHeaders({ 'Content-Type': 'application/json', 
  'Accept': 'application/json' });

return this.http.get(environment.endpointBaseUrl + '/api/User/GetUserInfo', 
{ headers: headers, withCredentials: true});

Если я украшаю свое действие Controller с помощью Authorize, я получаю эту ошибку: InvalidOperationException: не была указана схема authenticationScheme, и не было найдено DefaultChallengeScheme

Если действие Controller не оформлено с помощью Authorize User.Identity.Name равно null.

Я ударил стену с этим, поэтому любая помощь будет великолепна.Спасибо.

...