2013-12-14 5 views
11

उपयोगकर्ता में लॉग इन किया और प्रमुख कुछ करना चाहता है और मैं इतना मुझे यकीन है कि वे उपयोगकर्ता कि प्रवेश होने हैं कर सकते हैं उनके पासवर्ड फिर से दर्ज करने के लिए उन्हें चाहते है नव प्रवेश किया पासवर्ड सत्यापित करें।उपयोगकर्ता के प्रवेश

मैं कैसे पुष्टि कर सकता हूं कि यह खाता खाताधारक के लिए है?

एएसपी.NET पहचान के माध्यम से इसे कैसे करना है या AspNetUsers तालिका के विरुद्ध या एंटिटी फ्रेमवर्क के माध्यम से इसे कैसे किया जाए, एक संग्रहित प्रो सेट अप करने के बारे में जानकर प्रसन्नता होगी।

उत्तर

12

मैं कैसे पुष्टि कर सकता हूं कि यह खाता खाताधारक के लिए है?

कैसे ASP.NET पहचान

के माध्यम से यह करने के लिए, वर्तमान में उपयोगकर्ता के प्रवेश के पासवर्ड को फिर से सत्यापित VerifyView पासवर्ड दर्ज करें और उपयोगकर्ता मौजूद है, तो जाँच करने के लिए निम्न विधि का उपयोग करने के लिए उपयोगकर्ता प्रदान करना।

var user = await UserManager.FindAsync(User.Identity.Name,VerifyViewModel.Password)

उपयोगकर्ता पाया जाता है, वर्तमान अनुरोध खाता धारक से एक ही है।


Membership.ValidateUser सदस्यता ढांचे के पुराने संस्करण से, ASP.NET पहचान से नहीं है।

+0

किसी कारण से मुझे ऐसा करने के लिए चेकपैसवर्ड की उम्मीद थी। यह नहीं करता .. यह बहुत अच्छा काम करता है। – Bobby

4

पहचान ढांचे के साथ आप सीधे डेटाबेस को हिट नहीं करना चाहते हैं। हमेशा दिए गए एपीआई का उपयोग करें। डेटाबेस संरचना पिछले कुछ वर्षों में कई बार बदल गई है, इसलिए निर्भरताएं शुरू करना (उदा। डेटा संदर्भ पर) किसी भी कारण से काम जोड़ रहा है।

async उपयोग के लिए, jd4u द्वारा पहले से प्रदान किया गया उत्तर देखें।

using Microsoft.AspNet.Identity; 

के रूप में इस पहचान ढांचे के लिए तुल्यकालिक विस्तार तरीकों की संख्या में लाता है:

तुल्यकालिक की पहचान है कि पासवर्ड वर्तमान उपयोगकर्ता मिलानों के लिए, आप पहली बार शामिल करने के लिए की जरूरत है।

फिर आप UserManager इस तरह पर Find के साथ जांच कर सकते हैं: प्रयोक्ता खाली नहीं है

var user = UserManager.Find(User.Identity.Name, password); 
if (user != null) 
{ 
    // It is them! 
} 

है, तो आप पासवर्ड और वर्तमान उपयोगकर्ता नाम के एक मैच है।

3

तुम भी UserManager.CheckPassword() विस्तार समारोह का उपयोग कर सकते हैं:

UserManagerExtensions.CheckPassword Method

string id = User.Identity.GetUserId(); 
var user = UserManager.FindById(id); 
if(!UserManager.CheckPassword(user, model.Password)) 
{ 
    ModelState.AddModelError("Password", "Incorrect password."); 
} 
0

आप UserManager उपयोग कर सकते हैं कि ऐसा करने के लिए: How to check password manually in Asp.Net identity 2?:

if(UserManager.PasswordHasher.VerifyHashedPassword("hashedPassword", "password") 
    != PasswordVerificationResult.Failed) 
{ 
    // password is correct 
} 

अधिक जानकारी के लिए लिंक देखें

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