gpt4 book ai didi

c# - OnValidateIdentity ASP.NET Identity 如何工作

转载 作者:行者123 更新时间:2023-11-30 20:18:10 25 4
gpt4 key购买 nike

我试图更好地理解 .NET 的 Identity OnValidateIdentity 方法是如何工作的。我在我的应用程序中设置了这段代码,如下所示:

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
CookieName = "LoginCookie",
ExpireTimeSpan = TimeSpan.FromHours(1),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromHours(1),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});

这里的 OnValidateIdentity 是否有一个角色来检查用户何时访问我的网站以查看他的 cookie 有多久了,如果它比我在这里设置的那个(1 小时)旧 - 用户将被强制重新登录应用程序。

这就是它的工作原理吗?

最佳答案

如果您想获得更全面的了解,为什么不阅读 source code

简而言之,此方法将检查用户记录上的 SecurityStamp 值是否已更改。它将每小时检查一次(在您的设置中)。因此,如果 SecurityStamp 已更改,则 cookie 将失效。如果 SecurityStamp 与上次检查相比没有变化,则 cookie 的值会更新(使用新的时间戳),但用户不会注销。

当用户更改密码并希望使所有浏览器中的所有现有 auth-cookie 无效时,此功能很有用。

我的 blog post 中有更多细节.

关于c# - OnValidateIdentity ASP.NET Identity 如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42302856/

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