Глядя на 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)
Исходный код доступен здесь: