Я использовал комбинацию этих трех ресурсов для начала работы с Identity Server 4.
- IdentityServer4.Quickstart.UI
- 4_ImplicitFlowAuthenticationWithExternal
- Combined_AspNetIdentity_and_EntityFrameworkStorage
Комбинация трех использовалась для хранения пользователей в базе данных даже от внешних поставщиков. Также храните конфигурации Identity Server 4, такие как утверждения, роли, клиенты и ресурсы. Моя главная проблема сейчас заключается в том, что при запуске в IIS Express Windows аутентификация работает как положено. После публикации на полном сервере IIS на моем локальном компьютере я получаю повторяющееся всплывающее окно для входа в систему при попадании на страницу внешнего входа Windows. Я не получаю это всплывающее окно при запуске Identity Server 4 в IIS Express. В IIS Express я могу нажать кнопку внешней аутентификации Windows. Он правильно проходит через приложение и успешно завершает вход в систему.
Любая помощь высоко ценится. Я попытался включить как можно больше шагов воспроизведения, поэтому дайте мне знать, если что-то неясно.
Повторяющийся логин Всплывающее окно:
IIS настроен с включенной аутентификацией Windows и анонимной аутентификацией.
Setup.CS (метод ConfigureServices)
public void ConfigureServices(IServiceCollection services) {
// Windows authentication is supported only by hosting Kestrel (Asp.net Core Web Server inside iis as a reverse proxy)
// It is different than other Authentication methods because you don't Add the Authentication middleware like above.
services.Configure<IISOptions>(options => {
options.AuthenticationDisplayName = "Windows";
options.AutomaticAuthentication = true;
});
services.AddMvc();
Program.cs
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();