Bei der Betrachtung von ASP.NET Identity (neue Implementierung der Mitgliedschaft in ASP.NET) bin ich bei der Implementierung meiner eigenen auf diese Schnittstelle gestoßen 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
wird standardmäßig implementiert, EntityFramework.UserStore<TUser>
wodurch die TUser.SecurityStamp
Eigenschaft im Wesentlichen abgerufen und festgelegt wird .
Nach einigem weiteren Graben scheint es, dass a ein SecurityStamp
ist Guid
, das an Schlüsselpunkten in neu generiert wird UserManager
(z. B. Ändern von Passwörtern).
Ich kann darüber hinaus nicht wirklich viel entziffern, da ich diesen Code in Reflector untersuche . Fast alle Symbol- und Async-Informationen wurden optimiert.
Auch Google hat nicht viel geholfen.
Fragen sind:
- Was ist eine
SecurityStamp
in ASP.NET Identity und wofür wird sie verwendet? - Tut das
SecurityStamp
eine Rolle, wenn Authentifizierungscookies erstellt werden? - Gibt es Sicherheitsauswirkungen oder Vorsichtsmaßnahmen, die dabei getroffen werden müssen? Senden Sie diesen Wert beispielsweise nicht nachgeschaltet an Clients?
Update (16.09.2014)
Quellcode hier verfügbar: