我有一個身份服務器(Identity Server 4 2.0.0的ASP.NET Core 2)配置爲使用Kestrel和IISIntegration,並在launchSettings.json上啓用了匿名和Windows身份驗證。我還配置IISOptions這樣的:Windows身份驗證不接受憑據
services.Configure<IISOptions>(iis =>
{
iis.AutomaticAuthentication = false;
iis.AuthenticationDisplayName = "Windows";
});
services.AddAuthentication();
services.AddCors()
.AddMvc();
services.AddIdentityServer(); // with AspNetIdentity configured
app.UseAuthentication()
.UseIdentityServer()
.UseStaticFiles()
.UseCors(options => options.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin())
.UseMvcWithDefaultRoute();
而且我有這個客戶端(也ASP.NET酷睿2與Windows和匿名身份驗證同時啓用,與IISIntegration上運行的紅隼)
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddOpenIdConnect(config =>
{
config.Authority = "http://localhost:5000";
config.RequireHttpsMetadata = false;
config.ClientId = "MyClientId";
config.ClientSecret = "MyClientSecret";
config.SaveTokens = true;
config.GetClaimsFromUserInfoEndpoint = true;
});
services.AddMvc();
身份服務器在http://localhost:5000上運行,客戶端在http://localhost:2040上運行。
當我啓動客戶端時,它正確地顯示了Identity Server的登錄屏幕,但是在單擊Windows身份驗證時,只會一直詢問憑據。我已經查看了兩個應用程序的輸出窗口,兩邊都沒有異常提升。我已經嘗試將Identity Server部署到IIS服務器(啓用了Windows身份驗證並在「網絡服務」下運行其池),並重現了相同的行爲。
;'排除故障? – Kostya
@KostyaK如果你引用'services.AddIdentityServer().AddDeveloperSigningCredential()',是的,那已經存在 –
@CodeCaster嘗試從這裏運行官方示例https://github.com/IdentityServer/IdentityServer4.Samples/tree/發佈/ Quickstarts/6_AspNetIdentity/src以查看它是否適用於您的環境。這樣你可以縮小搜索問題的範圍。 – Kostya