SORU
21 EKİM 2013, PAZARTESİ


ASP.NET Kimlik'In İUserSecurityStampStore<TUser> arayüzü nedir?

ASP.NET Kimlik (ASP.NET yeni üyelik uygulaması), UserStore kendim uygularken bu arayüz geldi:

//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 varsayılan aslında TUser.SecurityStamp özelliği ayarlamak EntityFramework.UserStore<TUser> tarafından yürütülmektedir.

Biraz daha kazma sonra, bir SecurityStamp yeni UserManager (örneğin, Şifre değiştirme) kilit noktalarında oluşturulan Guid görünür.

Gerçekten bu kodu inceliyorum beri bu kadar ötesinde bir anlam çıkaramıyorumReflektör. Neredeyse tüm sembol ve uyumsuz bilgi optimize edilmiştir.

Ayrıca, Google pek yardımcı olmadı.

Soru:

  • ASP.NET Kimlik SecurityStamp nedir ve ne için kullanılır?
  • SecurityStamp doğrulama çerez oluşturulduğunda herhangi bir rol oynuyor mu?
  • Bu birlikte alınması gereken güvenlik sonuçları veya herhangi bir önlem var mı? Örneğin, müşteriler için bu değer aşağı göndermiyorsun?

Güncelleme (9/16/2014)

Kaynak burada mevcut: kod

CEVAP
21 EKİM 2013, PAZARTESİ


Bu temelde kullanıcı kimlik bilgileri mevcut ekran görüntüsünü temsil ediyor. Eğer değişen bir şey olmazsa damgası aynı kalacak. Ama kullanıcı parolası değiştirilir, ya da bir oturum açma (bağlantısını google/fb hesabı) kaldırılırsa, damga değişecek. Bu 2.0 ile gelen bir özellik olan otomatik olarak kullanıcıların imzalama/bu durumda eski çerezleri reddetmek gibi şeyler için gereklidir.

Kimliğini açık kaynak henüz, şu anda boru hattı hala gelmedi.

Edit: 2.0.0 için Güncellendi.SecurityStamp birincil amacı her yerde oturumu etkinleştirmek için. Temel fikir, o zaman bir güvenlik ile ilgili değiştirilen kullanıcı, bir şifre, çok da iyi bir fikir için otomatik olarak geçersiz varolan oturum çerezleri, eğer öyleyse Şifre/Hesap edildiğine tehlikeye saldırgan, artık erişimi vardır.

2.0.0 olarak ne zaman değişti kanca CookieMiddleware OnValidateIdentity yöntemi SecurityStamp bakmak ve çerezleri reddetmek için aşağıdaki yapılandırma ekledik. Ayrıca, eğer damga değişmeden değişen rolleri gibi şeyler dikkat vb alınan) ise otomatik olarak refreshInterval her veritabanı kullanıcının talepleri yeniler

app.UseCookieAuthentication(new CookieAuthenticationOptions {
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Account/Login"),
    Provider = new CookieAuthenticationProvider {
        // Enables the application to validate the security stamp when the user logs in.
        // This is a security feature which is used when you change a password or add an external login to your account.  
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
            validateInterval: TimeSpan.FromMinutes(30),
            regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
    }
});

Eğer uygulama bu davranış açıkça tetik isterse çağırabilirsiniz:

UserManager.UpdateSecurityStampAsync(userId);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bach Vlogs

    Bach Vlogs

    18 HAZİRAN 2011
  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • Tina Chen

    Tina Chen

    26 Mayıs 2012