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