2012-12-21 21 views
14

मैं उपयोगकर्ता के उपयोगकर्ता आईडी में लॉग इन कैसे प्राप्त कर सकता हूं? मैं मानक प्रणाली उत्पन्न खाता मॉडल का उपयोग कर रहा हूँ। मैं उपयोगकर्ता नाम का उपयोग कर प्राप्त कर सकता हूं:उपयोगकर्ता की आईडी में लॉग इन करें

User.Identity.Name 

लेकिन मुझे UserId फ़ील्ड दिखाई नहीं दे रहा है। मैं UserId को किसी अन्य तालिका के लिए एक विदेशी कुंजी के रूप में उपयोग करना चाहता हूं।

+2

सरल सदस्यता? एएसपी.नेट सदस्यता? –

+0

सरल सदस्यता – naveed

उत्तर

14

मुझे लगता है कि आप WebSecurty वर्ग

var memberId = WebSecurity.GetUserId(User.Identity.Name); 

उपयोग करने के लिए है ProviderUserKey - Gets the user identifier from the membership data source for the user.

object id = Membership.GetUser().ProviderUserKey 

Membership.GetUser() - Gets the information from the data source and updates the last-activity date/time stamp for the current logged-on membership user.

+0

हम्म, मैं हो रही है: त्रुटि 'System.Web.Security.MembershipUser' के लिए 'GetUser' – naveed

+0

धन्यवाद एक परिभाषा शामिल नहीं है, वहाँ गलत वर्तनी, यह 'होने की Membership' लगता था। –

+0

ठीक है, यह काम किया। धन्यवाद! – naveed

9

ऐसा करने के लिए सबसे अच्छा तरीका है के लिए देख रहे हैं और भूल जाते हैं जोड़ने के लिए नहीं है आपके नियंत्रक के शीर्ष पर [InitializeSimpleMembership] :)

+0

के बजाय उपयोगकर्ता नाम के लिए उपयोगकर्ता नाम यह भी काम करता है, धन्यवाद। – naveed

+0

जब तक आपका प्रदाता अद्वितीय पहचानकर्ता के रूप में 'int' का उपयोग करने की आवश्यकताओं का पालन करता है। –

+0

धन्यवाद। यह सहायक था :) –

19

इस प्रयास करें:

using Microsoft.AspNet.Identity; 
User.Identity.GetUserId(); 

कि कैसे अपने वर्तमान MVC (MVC5/EF6/VS2013) टेम्पलेट्स के लिए आंशिक दृश्य में किया।

अगर मैं गलत हूं, तो मुझे सही करें, क्योंकि मैंने Aviatrix के उत्तरों को बहुत कुछ देखा है, लेकिन क्या होता है यदि एक से अधिक उपयोगकर्ता डेटाबेस में समान नाम रखते हैं?

+0

यह मेरे लिए भी काम करता है! +1 – Bojangles

+0

यह समाधान संभव नहीं है यदि उपयोगकर्ता पहले से लॉग इन है और वर्तमान पासवर्ड बदलने की कोशिश कर रहा है। – usefulBee