मैं एंटिटी फ्रेमवर्क 4 के साथ एक एएसपी.NET एमवीसी 3 वेब अनुप्रयोग विकसित कर रहा हूं। जब कोई उपयोगकर्ता मेरे एप्लिकेशन में लॉग इन करता है तो मैं अपनी उपयोगकर्ता इकाई (फर्स्टनाम, अंतिम नाम इत्यादि) को स्टोर करना चाहता हूं एक सत्र जिसे पूरे एप्लिकेशन में एक्सेस किया जा सकता है।एएसपी.NET एमवीसी स्टोर सत्र में उपयोगकर्ता इकाई
मैं समझता हूं कि यह एक अच्छा विचार नहीं हो सकता है क्योंकि जब ऑब्जेक्ट कॉन्टेक्स्ट बंद/डिस्पोजेक्ट करता है, तो उपयोगकर्ता इकाई अलग हो जाती है और उपयोगकर्ता का विवरण खो सकता है।
मैंने सोचा था कि एक और तरीका, हो सकता है जब उपयोगकर्ता में लॉग करता है, एक सत्र चर को userID (प्राथमिक कुंजी) आवंटित अर्थात्:
HttpContext.Current.Session["currentUserID"] = user.userID;
फिर तो जैसे UserService कक्षा में एक वर्ग बनाने के लिए:
public static User CurrentUser
{
get
{
return Data.DBEntities.Users.Where(u => u.userID == HttpContext.Current.Session["currentUserID"]).FirstOrDefault();
}
}
वर्तमान उपयोगकर्ता आईडी सत्र के आधार पर उपयोगकर्ता इकाई को वापस करना चाहिए। यह मेरे लिए काम कर रहा है लेकिन नहीं, मैं त्रुटियों
Cannot convert lambda expression to type 'string' because it is not a delegate type
Delegate 'System.Func<Asset.Model.User,int,bool>' does not take 1 arguments
की एक जोड़ी है इस दृष्टिकोण मैं सही ले रहा हूँ हो रही है, या वहाँ एक बेहतर तरीका है?
कोई भी प्रतिक्रिया बहुत सराहना की जाएगी।
आपकी प्रतिक्रिया के लिए धन्यवाद। – tgriffiths