Глядя на ASP.NET Identity (новая реализация членства в ASP.NET), я столкнулся с этим интерфейсом при реализации своего собственного 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
реализован по умолчанию, EntityFramework.UserStore<TUser>
который по существу получает и устанавливает TUser.SecurityStamp
свойство.
После еще нескольких копаний выясняется, что a SecurityStamp
- это Guid
новое, сгенерированное в ключевых точках UserManager
(например, смена паролей).
Я не могу многое расшифровать за пределами этого, так как я исследую этот код в Reflector . Почти вся символьная и асинхронная информация была оптимизирована.
Кроме того, Google не сильно помог.
Вопросы:
- Что такое
SecurityStamp
удостоверение ASP.NET и для чего оно используется? - Играет ли
SecurityStamp
роль какую-либо роль при создании файлов cookie для аутентификации? - Есть ли какие-либо последствия для безопасности или меры предосторожности, которые необходимо принять с этим? Например, не отправлять это значение в нисходящий поток клиентам?
Обновление (16.09.2014)
Исходный код доступен здесь: