2015-10-11 8 views
11

मुझे ईमेल पता के बजाय उपयोगकर्ता नाम का उपयोग करने के लिए अपना लॉगिन सेट करने की आवश्यकता है, मैं इसे कैसे बदल सकता हूं?एमवीसी पहचान में "ईमेल" के बजाय "उपयोगकर्ता नाम" के साथ कैसे लॉगिन करें?

+0

कृपया इस धागे को जांचें: http://stackoverflow.com/questions/27501533/use-username-instead-of-email-for-identity-in-asp-net-mvc5 –

उत्तर

14

यह वास्तव में उपयोगकर्ता नाम के रूप ईमेल पते का उपयोग होता है, ताकि ASPNetUsers तालिका में, आप ईमेल पते के साथ दोनों उपयोगकर्ता नाम और ईमेल खाने दिखाई देंगे।

, AccountController में जाकर रजिस्टर विधि (बाद का) के लिए देखो।

बदलें इस:

var user = new ApplicationUser { UserName = model.Email, Email = model.Email}; 
इस के लिए

:

var user = new ApplicationUser 
      { 
       UserName = model.UserName, 
       Email = model.Email 
      }; 

फिर Login.cshtml में जाकर बजाय उपयोगकर्ता नाम करने के लिए सभी संबंधित ई-मेल मॉडल क्षेत्रों बदल जाते हैं।

अंत में, AccountController में लॉग इन विधि (बाद का) में जाकर model.UserName को model.Email बदल जाते हैं।

var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, 
      model.RememberMe, shouldLockout: false); 

आपको अपनी नई उपयोगकर्ता नाम संपत्ति को पेश करने के लिए खाताव्यूमोडल्स.cs में भी बदलाव करना होगा।

+2

धन्यवाद जेसन। समस्या तब होती है जब मैं 'model.UserName' टाइप करता हूं, मुझे लाल अंडरलाइन मिलती है और जब भी मैं' मॉडल 'टाइप करता हूं। मुझे उपयोगकर्ता नाम विकल्प चुनने के लिए नहीं दिखाई देता है। –

+0

@ केविन मैक्सवेल यदि आप उपयोगकर्ता नाम का उपयोग करने का निर्णय लेते हैं, तो आप एप्लिकेशन यूज़र मॉडल को क्यों संशोधित नहीं करते? – Sakthivel

+0

@codebrain आप पहचान मॉडल का मतलब है? –

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