2013-11-27 8 views
5

मैं ASP.NET MVC में मानक सदस्यता सुविधा का उपयोग कर रहा 4.एएसपी.नेट एमवीसी 4 सदस्यता "मुझे याद रखें" कैसे काम करती है?

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

मेरे समस्या निम्नलिखित है:

जब मैं सक्रिय करें "मुझे याद रखें" विकल्प यह ठीक काम करता है, लेकिन क्योंकि यह एक वास्तव में लॉगिन सत्यापन प्रक्रिया के दौरान लोड किया जा रहा है सत्र चर लोड किया जा कभी नहीं नहीं होगा, जो अब छोड़ा जा रहा है।

मेरा प्रश्न होगा: क्या मेरा कस्टम कोड डालने के लिए "मुझे याद रखें" सत्यापन प्रक्रिया को पकड़ने का कोई तरीका है जो मुझे आवश्यक सत्र चर लोड करेगा? (या शायद "मुझे याद रखें" कुकी जो मैं बाद में उपयोग कर सकते हैं के लिए और अधिक जानकारी जोड़ने?)

आप

+0

मुझे गलत से सही करें, आप जो कर रहे हैं वह है जब आप लॉग इन करते हैं तो उस ऑब्जेक्ट को वापस लौटाते हैं जिसमें कुछ जानकारी होती है और उसे सत्र में रखा जाता है। ऑथ कुकीज़ बनाने के बाद, समाप्ति तिथि सेट करें और इसे प्रतिक्रिया में रखें। आपने web.config में फॉर्म ऑथ तत्व पर टाइमआउट भी सेट किया है (मान लें कि 5 दिन)। अब आप ऑथ कुकीज़ भेजकर ऑथ बाईपास कर सकते हैं। यदि यह सच है तो मेरा मानना ​​है कि आपकी ऑब्जेक्ट को सत्र में अभी भी संग्रहीत किया जाना चाहिए? सवाल यह है कि आपको ऑब्जेक्ट की आवश्यकता है या मुझे याद रखने के लिए आपको एक नया भी चाहिए? – Anton

उत्तर

5

धन्यवाद अपने परिदृश्य में, आप Global.asax के session_start घटना का उपयोग कर सकते उपयोगकर्ता की जानकारी भरने के लिए।

public class Global : System.Web.HttpApplication 
{ 
    protected void Session_Start(object sender, EventArgs e) 
    { 
     if (HttpContext.Current.User != null && 
      HttpContext.Current.User.Identity.IsAuthenticated && 
      HttpContext.Current.Session["MyUserInfo"] == null) 
     { 
      // Get the user's information from database and save it to Session. 
      HttpContext.Current.Session["MyUserInfo"] = "johndoe"; 
     } 
    } 
} 
संबंधित मुद्दे