2016-05-17 2 views
0

3つのページ(Home, Register, Store)がリンクされています。ホームページには、データベースに保存されている既存のユーザーに対するログインオプションがあります。ログインだけが成功すれば誰かがStoreページにアクセスできます。そうでなければStoreページをクリックすると何も起こりません(同じホームページにスティックします)。ログインしたユーザーのみがリダイレクトまたは訪問する方法

Home.aspx.cs:

protected void Button1_Click(object sender, EventArgs e)//login 
    { 
     SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\lab1.mdf;Integrated Security=True"); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandText = "SELECT * FROM userdata WHERE username='" + TextBox1.Text + "'"; 
     cmd.Connection = conn; 
     //cmd.ExecuteNonQuery(); 

     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     if (dt.Rows.Count > 0) 
     { 
      //Session["name"] = dt.Rows[0]["userName"].ToString(); 
      Response.Redirect("Store.aspx?name=" + TextBox1.Text + ""); 
     } 
     else 
     { 
      Response.Redirect("Register.aspx"); 
     } 
    } 

Home.aspx:

<p><a href="Home.aspx">Home</a> <a href="Register.aspx">Register</a> <a href="Store.aspx">Store</a></p> 

Store.aspx:

<p><a href="Home.aspx">Home</a> <a href="Register.aspx">Register</a> <a href="Store.aspx">Store</a></p> 
+0

を追加 –

答えて

0

1クラスを作成することである2つの方法がありますし、静的フィールドを定義し、他の方法はセッションですが、私はログインのためのセッションを好むでしょう

は、最初のあなたは

if (dt.Rows.Count > 0) 
     { 

      Response.Redirect("Store.aspx?name=" + TextBox1.Text + ""); 
      Session["UserAuthentication"] = true; 
     } 

セッションなどを作成し、今すべてのページで確認するか、あなたが.csファイル内のマスタページを持っている場合はtrueの場合やない天候UserAuthenticationをチェックするためのコードを追加し、Page_Loadにコードを追加するために覚えているでしょう

CSファイルの1つのセッションを作成し、セッションが値または有効なを持っている場合は、単純な、他のストアページでは、ユーザーがホームページに彼をリダイレクトしてみましょうチェックチェック

if (Convert.ToBoolean(Session["UserAuthentication"]) == false) 
    { 
     Response.Redirect("Register.aspx"); 
    } 
関連する問題