2015-02-19 6 views
5

Parola kullanıcı adı ASP.NET Kimlik çerçevesinde içermediğini bir kontrol eklemek istiyorum.ASP.NET Kimlik Özel ParolaValidator kontrol karşı Kullanıcı adı

Özel bir PasswordValidator uygulamasının işi iyi yapması gerekir, ancak kullanıcı adına nasıl erişebilirim?

public class CustomPasswordValidator : PasswordValidator 
{ 
    public override async Task<IdentityResult> ValidateAsync(string password) 
    { 
     var result = await base.ValidateAsync(password); 

     //How to access username here 

     return result; 
    } 
} 
+0

kullanıcı bu noktada oturum mu, yoksa bu yeni kullanıcılar içindir: gibi Yani geçerlilik kuralı görünecek? İkincisi, kullanıcı tarafından oturum açılıncaya kadar "User.Identity" ayarlanmayacağı için mümkün olmayabilir. – stuartd

+0

@stuartd: UserManager, bir kullanıcı oluşturulurken veya aynı parolayı değiştirirken aynı PasswordValidator kullanarak parolayı doğrular. Mevcut bir kullanıcı için –

+0

Herhangi bir sevinç? @Niko Bunu anladın mı? –

cevap

0

Sen Bir yüklem doğrulayıcı sahiptir Fluent Validation library

bakmak olabilir (Zorunlu) senaryonuz için mükemmel olduğunu.

RuleFor(model => model.Password) 
     .Must((model, username) => !model.Password.Contains(username)) 
+0

Yanıtınız için teşekkür ederiz, ancak ** bu doğrulama modele konulmamıştır. Bu kontrolü Kullanıcı Yöneticisi'nde diğer tüm şifre ve kullanıcı gereksinimleriyle merkezileştirmek istiyorum. –