在ASP.NET Identity
中,我在哪里可以找到'成功登录,如果我使用cookies?
我想做的只是触发一些代码来检查某些内容,我希望每个用户在登录时触发一次该代码,无论是通过AccountController
登录还是或通过cookies auth ...自动登录。
我认为OnValidateIdentity
会是一个好地方,但每次请求都会发生这种情况,所以不是我想要的。
我的Cookie身份验证设置:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
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<UserManager<User, long>, User, long>(
validateInterval: TimeSpan.FromMinutes(20),
regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager),
getUserIdCallback: id => (long.Parse(id.GetUserId()))
)
}
});
答案 0 :(得分:0)
您已经拥有Auth cookie时无需登录。您只需在错过cookie或cookie过期时登录。 Cookie将随每个请求一起发送,这就是每次触发OnValidateIdentity的原因。
但是您可以在AccountController Login(Post)方法中连接一些逻辑。
此外,您可以编辑Cookie过期时间,以便更多地调用Login方法。