#c# #asp.net #iis #.net-core #asp.net-identity
Вопрос:
У меня есть приложение .Net Core 3.1, работающее в IIS, которое использует проверку подлинности Windows с помощью сертификатов клиента. В моем локальном IIS все работает так, как должно, и утверждения пользователя настроены правильно, однако, как только я разверну его на нашем удаленном тестовом сайте с помощью IIS, пользователь больше не получит никаких утверждений. В обеих средах у меня отключена анонимная проверка подлинности и включена проверка подлинности Windows в IIS. В тестовой среде это позволяет мне получить доступ к сайту, поэтому я знаю, что он проходит аутентификацию через IIS, но, похоже, по какой-то причине требования пользователя не задаются .Net Core. Я просмотрел, я не знаю, сколько потоков SO, а также кучу проблем с GitHub (https://github.com/dotnet/aspnetcore/issues/18040) и не смогли понять, почему это происходит. Ниже приведен код в моем файле Startup.cs. Ценю любую помощь в том, почему это не работает на нашем тестовом сервере.
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.Configure<IISOptions>(options =>
{
options.AutomaticAuthentication = true;
});
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.Configure<AppSettings>(options => Configuration.GetSection("SearchSettings").Bind(options));
services.AddSingleton<IndexCache>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
}
Комментарии:
1. У вас есть какие-нибудь сообщения об ошибках? например, в средстве просмотра событий.
2. В журнале событий нет ошибок. Также включил журнал stdout и там тоже ничего не получил. В журнале IIS успешно отображается моя учетная запись пользователя в запросе, но по какой-либо причине она не передается приложению как User.Claims и Пользователь. Идентичности пусты.
3. Трудно воспроизвести вашу проблему на основе вашего описания, я предлагаю вам открыть дело с помощью: support.microsoft.com .