该问题可能是由Identity Server的配置不正确所引起的。您可以尝试按照以下步骤来解决此问题:
"Authentication": {
"Scheme": "Cookies",
"AutomaticAuthenticate": true,
"AutomaticChallenge": true,
"CookieName": "AuthCookie",
"Events": {
"OnRedirectToIdentityProvider": async context =>
{
context.ProtocolMessage.RedirectUri =
$"{context.Request.Scheme}://{context.Request.Host}{context.Request.PathBase}{context.Request.Path}";
}
},
"OpenIdConnect": {
"Authority": "https://identityserver.example.com",
"ClientId": "your_client_id",
"Scope": ["openid", "profile", "email"],
"ResponseType": "code id_token",
"GetClaimsFromUserInfoEndpoint": true,
"SignInScheme": "Cookies",
"SaveTokens": true,
"UseTokenLifetime": false,
"ClientSecret": "your_client_secret",
"CallbackPath": "/signin-oidc",
"SignedOutCallbackPath": "/signout-callback-oidc",
"RemoteSignOutPath": "/signout-oidc",
"RequireHttpsMetadata": true
}
}
public void ConfigureServices(IServiceCollection services)
{
...
services.AddAuthorization();
services.AddAuthentication(options =>
{
options.DefaultScheme = "cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("cookies")
.AddOpenIdConnect("oidc", options =>
{
options.Authority = "https://identityserver.example.com";
options.ClientId = "your_client_id";
options.ClientSecret = "your_client_secret";
options.ResponseType = "code id_token";
options.Scope.Add("openid");
options.Scope.Add("profile");
options.Scope.Add("email");
options.SaveTokens = true;
options.Events