2012-09-24 14 views
6

हाय दोस्तों! इस समय मेरे पास एक परियोजना आईएम के बारे में एक प्रश्न है।एएसपी.नेट सत्र और LINQ

var query = from user in dwe.UsersTable 
         where user.LoginName.Equals(usernameBox.Text) && user.Password.Equals(pwBox.Text) 
         select user; 

     if (query.Count() == 1) 
     { 
      Session["User"] = usernameBox.Text;      
      Response.Redirect("Edit.aspx"); 
     } 
     else 
     { 
      LabelError.Text = "Error try again"; 
     } 
    } 

मेरी "UsersTable" मैं एक coulmn नाम दिया "उपयोगकर्ता id" में: मैं कोड की इस पंक्ति है। मैं को "userID" को पुनर्निर्देशित पृष्ठ (Edit.aspx) पर सत्र के रूप में भेजना चाहता हूं, उपयोगकर्ता आईडी को उपयोगकर्ता नाम और पासवर्ड के बीच तुलना के परिणाम के बराबर होना चाहिए।

चियर्स :-)

+2

['गणना' के बजाय 'किसी भी' का उपयोग करें] (http://blogs.teamb.com/craigstuntz/2010/04/21/38598/) –

+0

उपयोगकर्ताओं के पासवर्ड को सादे टेक्स्ट में संग्रहीत करना खराब अभ्यास है डेटाबेस। आपको अपना पासवर्ड हैशिंग करना चाहिए और इसके बदले में स्टोर करना चाहिए। –

उत्तर

6

तुम सिर्फ

var query = (from user in dwe.UsersTable 
         where user.LoginName.Equals(usernameBox.Text) && 
         user.Password.Equals(pwBox.Text) 
         select user).FirstOrDefault(); 

if(query!=null) 
{ 
    Session["User"] = query.UserID; 
    Response.Redirect("Edit.aspx"); 
} 
else 
{ 
    LabelError.Text = "Error try again"; 
} 

donw कोड आपके पास कौन सा FirstOrDefault का यह प्रयोग सिर्फ बनाने के बजाय गणना पद्धति का उपयोग दे देंगे लिखने के लिए कोई ज़रूरत नहीं लिख करने की जरूरत है आप आसानी से परिणाम।

+0

प्रणय राणा, यह त्वरित उत्तर और सहायता के लिए बहुत बहुत धन्यवाद! आपने मुझे बहुत समय बचाया – MishMish

+0

मैं इसे स्वीकार्य उत्तर के रूप में कैसे बना सकता हूं? यह वेबसाइट में मेरा पहला समय है:/ – MishMish

+0

क्यों -1 है ??? –

3
var query = from user in dwe.UsersTable 
      where user.LoginName.Equals(usernameBox.Text) 
        && user.Password.Equals(pwBox.Text) 
      select user; 

// get user from query 
// If SingleOrDefault is not supported (<4.0) use FirstOrDefault instead. 
// Thanks Tim Schmelter 
var user = query.SingleOrDefault(); 

if (user != null) 
{ 
    Session["UserID"] = user.UserID;     
    Response.Redirect("Edit.aspx"); 
} 
else 
{ 
    LabelError.Text = "Error try again"; 
} 
+0

ध्यान दें कि 'सिंगलऑर्डफॉल्ट' 'लिंक-टू-एंटिटीज 3.5 'में समर्थित नहीं है, फिर' फर्स्टऑर्ड डीफॉल्ट 'का उपयोग करें। –

+0

बहुत धन्यवाद फ्लेम, मैंने आपके उत्तर और पराना दोनों को आजमाया और यह ठीक काम करता है! अंगूठे ऊपर :-) चीयर्स – MishMish

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