gpt4 book ai didi

asp.net-mvc - 如何在asp.net core中处理cookie过期

转载 作者:行者123 更新时间:2023-12-02 10:05:47 24 4
gpt4 key购买 nike

我想知道如何正确处理cookie过期的情况?是否可以执行自定义操作?

我想要实现的是,当 cookie 过期时,从当前 cookie 中取出一些信息,并通过该信息重定向到操作参数。这可能吗?

最佳答案

没有一个好的方法可以实现这一点。如果 cookie 过期,则不会将其发送到服务器以提取任何信息。使用 ASP.Net Core Identity,您对此没有太多控制权。这样您就可以使用 Cookie 中间件了。

当 cookie 过期时,这为用户提供了正常的重定向:

public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookieAuthenticationOptions>(options =>
{
options.LoginPath = new PathString("/Home/Index");
});
}

实现您正在寻找的内容的最佳方法是将 cookie 过期设置为晚于真正的用户 session 过期,然后执行 session 过期服务器端并在此时重定向用户。虽然这并不理想,但当 Cookie 过期时您没有其他选择。

public void ConfigureServices(IServiceCollection services)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AuthenticationScheme = "MyCookieMiddlewareInstance",
// Redirect when cookie expired or not present
LoginPath = new PathString("/Account/Unauthorized/"),
AutomaticAuthenticate = true,
// never expire cookie
ExpireTimeSpan = TimeSpan.MaxValue,
Events = new CookieAuthenticationEvents()
{
// in custom function set the session expiration
// via the DB and reset it everytime this is called
// if the session is still active
// otherwise, you can redirect if it's invalid
OnValidatePrincipal = <custom function here>
}
});
}

关于asp.net-mvc - 如何在asp.net core中处理cookie过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38890172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com