2017-09-29 4 views
-1

私はこれを試してみると、ログイン時にデフォルトのファイルにアクセスできません。私はすでにデータベースとテーブルをチェックしています。複数のユーザーを作成しようとしていますが、ログインできません。複数のユーザーにアクセスする適切な方法は何ですか?セッションを使用してasp.netで複数ログインする

if (Sessions.Current.authenticated != null) 
    { 
     if (Sessions.Current.authenticated) 
     { 
      Response.Redirect("Admin/Default2.aspx"); 
     } 
    } 
} 

protected void login(object sender, EventArgs e) 
{ 
    string username = txtUsername.Text.ToString(); 
    string password = txtPassword.Text.ToString(); 

    DataTable dtUser = DBConnector.getTable("SELECT * FROM User WHERE Username = '" + username + "' AND Password = '" + password, false); 
    if (dtUser.Rows.Count > 0) 
    { 

     DataRow dr = dtUser.Rows[0]; 
     Sessions.Current.authenticated = true; 
     Sessions.Current.lastfirst = dr["Name"].ToString(); 
     Sessions.Current.Usertype = dr["userType"].ToString(); 


     Response.Redirect("Admin/Default2.aspx"); 
     Response.Redirect("web/Default.aspx"); 
    } 
} 
+0

注意SQLインジェクションの問題 –

答えて

0

まず、このコードは残念です。誰でもSQLインジェクションを使用して、パスワードやユーザー名を使用せずにWebサイトにログインすることができます。パラメータ化されたクエリを代わりに使用します。

いけないあなたが直面している問題に今、このようにクエリ

DataTable dtUser = DBConnector.getTable("SELECT * FROM User WHERE Username = '" + username + "' AND Password = '" + password, false); 

を作ります。つまり、デフォルトページを表示していません。これは、このコードが制御を実行すると

Response.Redirect("Admin/Default2.aspx"); 

このページを離れ、Default.aspx2のPage_Loadイベントに行くためです。あなたがそれから何を書いても、それは実行されないでしょう。

関連する問題