Patrząc na ASP.NET Identity (nowa implementacja członkostwa w ASP.NET), natknąłem się na ten interfejs podczas wdrażania własnego 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
jest implementowana domyślnie, EntityFramework.UserStore<TUser>
która zasadniczo pobiera i ustawia TUser.SecurityStamp
właściwość.
Po kilku dalszych poszukiwaniach okazuje się, że a SecurityStamp
jest Guid
nowo wygenerowanym w kluczowych punktach UserManager
(na przykład przy zmianie haseł).
Naprawdę nie mogę odszyfrować nic poza tym, ponieważ badam ten kod w Reflektorze . Prawie wszystkie symbole i informacje asynchroniczne zostały zoptymalizowane.
Ponadto Google nie pomogło.
Pytania są następujące:
- Co to jest
SecurityStamp
w ASP.NET Identity i do czego służy? - Czy
SecurityStamp
odgrywa jakąś rolę podczas tworzenia plików cookie uwierzytelniania? - Czy są jakieś konsekwencje dla bezpieczeństwa lub środki ostrożności, które należy w związku z tym podjąć? Na przykład nie wysyłaj tej wartości do klientów?
Aktualizacja (16.09.2014)
Kod źródłowy dostępny tutaj: