Al observar la identidad de ASP.NET (nueva implementación de membresía en ASP.NET), me encontré con esta interfaz al implementar la mía propia UserStore
:
//Microsoft.AspNet.Identity.Core.dll
namespace Microsoft.AspNet.Identity
{
public interface IUserSecurityStampStore<TUser> :
{
// Methods
Task<string> GetSecurityStampAsync(TUser user);
Task SetSecurityStampAsync(TUser user, string stamp);
}
}
IUserSecurityStampStore
se implementa por defecto EntityFramework.UserStore<TUser>
que esencialmente obtiene y establece la TUser.SecurityStamp
propiedad.
Después de un poco más de excavación, parece que a SecurityStamp
es una Guid
nueva generación en puntos clave de UserManager
(por ejemplo, cambiar las contraseñas).
Realmente no puedo descifrar mucho más allá de esto ya que estoy examinando este código en Reflector . Casi toda la información de símbolos y asíncronos se ha optimizado.
Además, Google no ha sido de mucha ayuda.
Las preguntas son:
- ¿Qué es una
SecurityStamp
identidad ASP.NET y para qué se utiliza? - ¿
SecurityStamp
Juega algún papel cuando se crean las cookies de autenticación? - ¿Hay alguna ramificación de seguridad o precaución que deba tomarse con esto? Por ejemplo, ¿no envía este valor en sentido descendente a los clientes?
Actualización (16/09/2014)
Código fuente disponible aquí: