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);
}
}
IUserSecurityStampStorese implementa por defecto EntityFramework.UserStore<TUser>que esencialmente obtiene y establece la TUser.SecurityStamppropiedad.
Después de un poco más de excavación, parece que a SecurityStampes una Guidnueva 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
SecurityStampidentidad ASP.NET y para qué se utiliza? - ¿
SecurityStampJuega 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í: