我将responsemode设置为“ form_post”,但是当我尝试登录IDP时,出现此错误:
异常:当使用response_mode = query
时,OpenID Connect响应不能包含身份令牌或访问令牌。这是我相关的Startup.cs代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthentication(options => {
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(options => {
options.LoginPath = "/Account/Login/";
})
.AddOpenIdConnect(options =>
{
options.ClientId = Configuration["AppSettings:clientID"];
options.ClientSecret = Configuration["AppSettings:clientSecret"];
options.Authority = Configuration["AppSettings:Authority"];
options.ResponseMode = OpenIdConnectResponseMode.FormPost;
options.ResponseType = "code id_token";
options.ClaimsIssuer = "MySSOIDP";
options.TokenValidationParameters.ValidIssuer = "MySSOIDP";
options.ProtocolValidator.RequireNonce = false;
options.GetClaimsFromUserInfoEndpoint = false;
options.CallbackPath = Configuration["AppSettings:callBackURL"];
}
);
services.Configure<OidcOptions>(Configuration.GetSection("oidc"));
}
如何仍然为response_mode设置“查询”?我很困惑。