2017-09-29 1 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 인젝션을 사용하여 웹 사이트에 로그인 할 수 있습니다. 매개 변수화 된 쿼리를 대신 사용하십시오.

은 그나마 당신이 직면하고있는 문제에 이제이 방법

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

에 쿼리를 확인합니다. 즉, 기본 페이지를 누르지 않고 있습니다. 이것은이 코드는 컨트롤을 실행하면

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

이 페이지를 떠나 Default.aspx2의 Page_Load 이벤트로 이동 때문이다. 당신이 그 후에 쓴 것은 중요하지 않습니다.

관련 문제