2012-09-24 16 views
6

Merhaba millet! Şu an üzerinde çalıştığım bir proje ile ilgili bir sorum var. Benim "UsersTable" i coulmn "Kullanıcı Kimliği" adlı gelmiş iseASP.NET Oturumu ve 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"; 
     } 
    } 

: Ben bu kod hattı var. "userID" yi yeniden yönlendirilen sayfaya (Edit.aspx) bir oturum olarak göndermek istiyorum KullanıcıKimliği Kullanıcı adı ve parola arasındaki karşılaştırmanın sonucuna eşit olmalıdır.

+2

['Count' yerine' Any' kullanın] (http://blogs.teamb.com/craigstuntz/2010/04/21/38598/) –

+0

Kullanıcıların parolalarını düz metin olarak depolamak kötü bir uygulamadır. veri tabanı. Parolalarını saklamayı ve onu saklamayı düşünmelisiniz. –

cevap

6

:-)

Şerefe sadece

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"; 
} 

verecektir yerine FirstOrDefault Of bu sadece yapmak Kullanım Sayım yöntemi kullanmak sahip kod Accept yazmaya gerek yok yazmak gerekiyor Sonuç kolayca.

+0

Pranay Rana, Hızlı cevap ve yardım için çok teşekkürler! Beni çok zaman kurtardınız – MishMish

+0

Kabul edilen cevap olarak nasıl yapabilirim? Bu web sitesinde ilk kez:/ – MishMish

+0

neden var ?? ??? –

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

'SingleOrDefault'' Linq-To-Entities' 3.5’de desteklenmediğini, daha sonra 'FirstOrDefault'' kullandığını unutmayın. –

+0

teşekkürler flem, hem cevabınızı hem de Paranay'i denedim ve burada iyi çalışıyor! Yaşasın :-) Alkışlar – MishMish