2011-03-07 15 views
5

tarafından oluşturulan parolalarla karşılaştırmaya çalışıyorum Bir SqlMembershipProvider kullanıyorum ve parolalarımı hashed olarak saklıyorum. Ayrıca (hashed) şifrelerinin geçmişini başka bir masada tutuyorum. Bir kullanıcının parolalarını eski parolalarıyla değiştirmeye çalıştığı parolayı karşılaştırmak ve çok yeni olsaydı bir hata atmak istiyorum. Bunu yapmak için karma işlevlerin nasıl kullanılacağını anlayamıyorum. Temel olarak, aradığım şey şu şekildedir:Parola geçmişini SqlMembershipProvider

public bool PasswordCompare(string plaintextPassword, string salt, string hashedPassword) 
{ 
    //where the salt and hashedPassword are pulled out of the aspnet_Membership table 
    //which are automatically generated by the provider 
} 

Umarım bu açıktır, teşekkürler.

+0

Neden sadece UserId, Şifre ve ardından son beş sorgulamak istiyorum başka günlük tablosunun içine geçerli tarih ve saati yazıyor aspnet_Membership tablo içinde bir tetik koydu? – Thomas

+0

@Thomas, şifrelerinizi düz metin içinde saklamanızı öneriyor musunuz? –

+1

@Wyatt Barnett - Tabii ki değil. Karma (ve tuz) bir kayıt tablosuna kaydedebilir ve mevcut karma ve tuzu bu listeye göre karşılaştırabilirsiniz. – Thomas

cevap

2

Bu gönderide bazı iyi bilgiler var. Mecbursun gibi görünüyor:

... Kendi özelleştirilmiş MembershipProvider uygulamak, şifre geçmişini kaydetmek ve kendi kendine göre şifresini şifrelemek.

SQLMembershipProvider: Comparing Hashed Passwords

+0

Ve bağlantı öldü .... – Stephen