Asp.net core asp.net core中会话超时后自动重定向到其他页面
会话过期时如何自动重定向到其他页面 下面是我的startup.cs代码Asp.net core asp.net core中会话超时后自动重定向到其他页面,asp.net-core,asp.net-core-2.0,Asp.net Core,Asp.net Core 2.0,会话过期时如何自动重定向到其他页面 下面是我的startup.cs代码 public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = CookieAuthenticationDe
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthentication(options => {
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
}).AddCookie(options =>
{
options.LoginPath = "/auth/signin";
options.SlidingExpiration = true;
options.ExpireTimeSpan = TimeSpan.FromSeconds(30);
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseAuthentication();
app.UseMvc();
}
我可以重定向到登录页面,如果我点击一个按钮或一个Actionlink。
但是我想在会话到期时自动重定向到另一个页面(登录页面除外)。
有人能帮我吗?试试这个:
options.Cookie.Name = "auth_cookie";
options.Cookie.SameSite = SameSiteMode.None;
options.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Account/Login");
options.AccessDeniedPath = "/Account/Login";
options.ReturnUrlParameter = "/Account/Login";
options.AccessDeniedPath = "/Account/AccessDenied";
options.LogoutPath = "/Account/Logout";
options.ExpireTimeSpan = TimeSpan.FromMinutes(1);//set it less for testing purpose
// options.Events.OnRedirectToLogin
将代码从代码Events.OnRedirectToLogin或OnRedirectToLogin中删除此返回错误代码。
我认为我们可以显示错误401或302等,或者将用户重定向到登录页面。
希望这有帮助这不是会话的工作方式。首先,会话使用滑动过期,因此只要用户保持活动状态,它们就永远不会过期。如果用户的非活动状态持续了足够长的时间,直到会话过期(在会话的整个生命周期内不再发出任何请求),那么用户仍然会将会话cookie发送回。当该特定会话因过期而无法恢复时,与之前根本不存在会话的情况相同。只需创建一个新会话并向用户发送一个新cookie。您找到解决方案了吗?