Переглядаючи ідентичність ASP.NET (нова реалізація членства в 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)
Вихідний код доступний тут: