Czy ktoś może wyjaśnić, dlaczego klasa ApplicationUser
tworzy następującą funkcję pomocnika?ASP.net Identity SecurityStampValidator Parametr OnValidateIdentity regenerateIdentity
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User, int> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
Jedyne miejsce znajdę to wykorzystywane jest w Startup.Auth.cs plików jako parametr regenerateIdentity
zwrotnego dla funkcji SecurityStampValidator.OnValidateEntity
:
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User, int>(
validateInterval: TimeSpan.FromSeconds(15),
regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager),
getUserIdCallback: (id) => id.GetUserId<int>())
Jak widać z pomocnik, który się odwraca i dzwoni pod numer manager.CreatedIdentityAsync
. Czy istnieje powód, dla którego "zanieczyszczają" klasę ApplicationUser
przy pomocy metody pomocniczej zamiast konfigurowania OnValidateEntity
w następujący sposób?
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User, int>(
validateInterval: TimeSpan.FromSeconds(15),
regenerateIdentityCallback: (manager, user) => manager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie),
getUserIdCallback: (id) => id.GetUserId<int>())