我有一个拥有大量注册用户的网站,其中很多人选择了#34;记得我"登录选项。
我曾经使用asp.net核心的默认登录行为,但我安装了openiddict并将以下选项添加到services.addIdentity:
options.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents
{
OnRedirectToLogin = context =>
{
if (context.Request.Path.StartsWithSegments("/api") && context.Response.StatusCode == (int)HttpStatusCode.Unauthorized)
{
context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
}
else
{
context.Response.Redirect(context.RedirectUri);
}
return Task.FromResult(0);
}
};
}
startup.cs中的完整方法现在读取以下内容:
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Password.RequireDigit = false;
options.Password.RequireLowercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
options.Password.RequiredLength = 6;
options.Cookies.ApplicationCookie.CookieDomain = "mydomain.com";
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromDays(1);
options.Lockout.MaxFailedAccessAttempts = 10;
options.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents
{
OnRedirectToLogin = context =>
{
if (context.Request.Path.StartsWithSegments("/api") && context.Response.StatusCode == (int)HttpStatusCode.Unauthorized)
{
context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
}
else
{
context.Response.Redirect(context.RedirectUri);
}
return Task.FromResult(0);
}
};
现在的问题是,如果先前注册和登录的用户试图打开需要身份验证的页面,则会收到错误消息。不幸的是,由于appinsights和&#34;开发&#34;我无法确定错误。模式在Azure中对我不起作用。如果用户在没有注销的情况下进入登录页面,则登录后会出现空白页面。 解决它的唯一方法是注销并再次登录。
因为我有很多用户,所以我试图找到清除所有会话或以前的Cookie的方法。 对此我提出的任何建议或对我的代码的评论都非常感谢。
谢谢
更新:我尝试了try catch并且发生了错误。显然没有例外......这很奇怪。
Update2:这与帐户无关。我的一个朋友正面临着这个错误并给了我他的证书。当我尝试它可行时,也许它是一个cookie问题?