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