对我来说,这是一个不同的问题。我的网站可以使用以下两个URL同时工作
https://www.example.com
and
https://example.com
但我的重定向URL是https://www.example.com。
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = ConfigurationManager.AppSettings["ClientId"].ToString(),
Authority = ConfigurationManager.AppSettings["Authority"].ToString(),
RedirectUri = ConfigurationManager.AppSettings["RedirectUri"].ToString();
}
使用 https://example.com 的用户会遇到上述异常。
www.example.com 和 example.com 生成的 cookie 不同。因此,在登录后重定向时,cookie 不包含正确的 nonce 进行验证,则会发生异常。
解决该问题的方法是动态设置重定向 URL。
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = ConfigurationManager.AppSettings["ClientId"].ToString(),
Authority = ConfigurationManager.AppSettings["Authority"].ToString(),
RedirectUri = ConfigurationManager.AppSettings["RedirectUri"].ToString(),
,
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = async n =>
{
var uri = n.Request.Uri;
n.ProtocolMessage.RedirectUri =""
}
}
}
相同的问题也可能发生在https://www.example.com和http://www.example.com