2015-02-19 12 views
5

के खिलाफ जांचें मैं एक चेक जोड़ना चाहता हूं कि पासवर्ड में एएसपी.NET पहचान ढांचे में उपयोगकर्ता नाम नहीं है।एएसपी.नेट पहचान कस्टम पासवर्ड वैलिडेटर उपयोगकर्ता नाम

कस्टम पासवर्ड सत्यापनकर्ता के कार्यान्वयन को नौकरी ठीक करना चाहिए, लेकिन मैं उपयोगकर्ता नाम कैसे प्राप्त कर सकता हूं?

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

क्या उपयोगकर्ता इस बिंदु पर लॉग इन है, या यह नए उपयोगकर्ताओं के लिए है? यदि उत्तरार्द्ध हो, तो यह संभव नहीं हो सकता है, क्योंकि उपयोगकर्ता द्वारा लॉग इन किए जाने तक 'User.Identity' सेट नहीं किया जाएगा। – stuartd

+0

@stuartd: उपयोगकर्ता प्रबंधक एक उपयोगकर्ता बनाते समय, या पासवर्ड बदलने के दौरान एक ही पासवर्ड सत्यापनकर्ता का उपयोग कर पासवर्ड सत्यापित करेगा मौजूदा उपयोगकर्ता के लिए –

+0

कोई खुशी? @ निको क्या आप इसे समझते थे? –

उत्तर

0

आप Fluent Validation library

पर एक नज़र यह एक विधेय सत्यापनकर्ता है लग सकता है (चाहिए) अपने परिदृश्य के लिए एकदम सही है कि। तो आपका सत्यापन नियम इस तरह दिखेगा:

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

आपकी प्रतिक्रिया के लिए धन्यवाद, लेकिन लक्ष्य ** ** ** इस सत्यापन को मॉडल में नहीं रखना था। मैं इस चेक को अन्य सभी पासवर्ड और उपयोगकर्ता आवश्यकताओं के साथ Usermanager में केंद्रीकृत करना चाहता हूं। –

संबंधित मुद्दे