Observando a identidade do ASP.NET (nova implementação de associação no ASP.NET), deparei-me com essa interface ao implementar minha própria 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
é implementado pelo padrão EntityFramework.UserStore<TUser>
que essencialmente obtém e define a TUser.SecurityStamp
propriedade
Depois de mais algumas pesquisas, parece que a SecurityStamp
é Guid
gerado recentemente em pontos-chave do UserManager
(por exemplo, alteração de senhas).
Não consigo decifrar muito além disso, pois estou examinando esse código no Reflector . Quase todas as informações de símbolos e assinaturas foram otimizadas.
Além disso, o Google não tem sido de muita ajuda.
As perguntas são:
- O que é uma
SecurityStamp
identidade no ASP.NET e para que é usada? - O
SecurityStamp
papel desempenha algum papel quando os cookies de autenticação são criados? - Existem ramificações ou precauções de segurança que precisam ser tomadas com isso? Por exemplo, não envie esse valor a jusante para os clientes?
Atualização (16/9/2014)
Código fonte disponível aqui: