Asp.net core 如何在其他选项卡打开时关闭选项卡后删除cookie
我正在实施一个asp.net核心3.1项目。我的问题是,当用户关闭项目选项卡,同时其他选项卡打开时,cookie将被删除。现在在运行项目之后,当其他选项卡打开时,在我关闭显示我的程序的选项卡并再次运行我的项目之后,我不需要登录,cookie也不会被删除。但在这种情况下,我也想登录。如果有人告诉我解决问题需要使用的表达方式,我将不胜感激。为了实现该项目,我使用Startup.cs中的以下表达式通过ldap对用户进行身份验证:Asp.net core 如何在其他选项卡打开时关闭选项卡后删除cookie,asp.net-core,active-directory,ldap,Asp.net Core,Active Directory,Ldap,我正在实施一个asp.net核心3.1项目。我的问题是,当用户关闭项目选项卡,同时其他选项卡打开时,cookie将被删除。现在在运行项目之后,当其他选项卡打开时,在我关闭显示我的程序的选项卡并再次运行我的项目之后,我不需要登录,cookie也不会被删除。但在这种情况下,我也想登录。如果有人告诉我解决问题需要使用的表达方式,我将不胜感激。为了实现该项目,我使用Startup.cs中的以下表达式通过ldap对用户进行身份验证: public void ConfigureServices(IServi
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<CSDContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("CSDContext")));
services.AddScoped<IAuthenticationService, LdapAuthenticationService>();
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>
{
// Cookie settings
//set the cookie name here
options.Cookie.Name = "UserLoginCookie"; // Name of cookie
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(15);
options.LoginPath = "/Account/Login";
options.AccessDeniedPath = "/Account/UserAccessDenied";
options.AccessDeniedPath = "/Account/AccessDenied";
options.SlidingExpiration = true;
});
services.AddSession();
services.AddSingleton<MySharedDataViewComponent>();
services.AddHttpContextAccessor();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseSession();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
上面的表达式可以工作,如果我关闭所有选项卡和浏览器,它会删除cookie。你可以在JavaScript中检测到选项卡关闭。但我不建议你做这样的操作。为什么你要在关闭选项卡时删除cookie。我想如果一个选项卡关闭,cookie删除,当其他选项卡将请求发送到服务器端时,这可能会导致任何其他问题。MinaMRM,您知道了吗?我有同样的要求,我知道如果打开了任何选项卡,并且关闭了运行应用程序的选项卡,那么cookie不会被删除,只要在关闭浏览器时设置程序,cookie就会被删除。此外,还可以设置过期时间,即当您在特定时间内不使用该程序时,它会删除cookie。您可以在JavaScript中检测到选项卡关闭。但我不建议您执行此类操作。为什么要在关闭选项卡时删除cookie。我想如果一个选项卡关闭,cookie删除,当其他选项卡将请求发送到服务器端时,这可能会导致任何其他问题。MinaMRM,您知道了吗?我有同样的要求,我知道如果打开了任何选项卡,并且关闭了运行应用程序的选项卡,那么cookie不会被删除,只要在关闭浏览器时设置程序,cookie就会被删除。此外,还可以设置过期时间,即当您在特定时间内不使用该程序时,它将删除cookie。
var authProperties = new AuthenticationProperties
{
IsPersistent = false
};