清除ASP.Net Core中的会话和旧cookie

时间:2017-05-19 12:13:07

标签: azure asp.net-core asp.net-identity asp.net-core-mvc

我有一个拥有大量注册用户的网站,其中很多人选择了#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问题?

0 个答案:

没有答案