2011-12-28 11 views
0

私は2名とパスワードのテキストボックスとボタン管理者と顧客が同じ場所でログインできるようにするにはどうすればいいですか?

が2台、1つの管理と一人の顧客

私は顧客名とパスワードを入力した後、それが正しいならば、それは、空または不正なパスワードかどうかを確認を持っています私は管理者名とパスワードを入力した後に、それは私がログインに使用一つのテーブルを可能にするだけでできる午前管理ページ

に行くべき検証する場合は、お客様のページ

に行くのだろうか?だから私は下のコードを変更する必要がありますか?

Protected Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click 
    If String.IsNullOrEmpty(txtName.Text) Or String.IsNullOrEmpty(txtPassword.Text) Then 
     Failure.Text = "Invalid User Name and Password. Try Again." 
     Exit Sub 
    End If 

    Dim connectionString = ConfigurationManager.ConnectionStrings("MYdatabase").ConnectionString 
    Dim myConn As New SqlConnection(connectionString) 
      Dim cmd = "Select * From Customer where name = @name" 
      Dim my As New SqlCommand(cmd, myConn) 

    my.Parameters.AddWithValue("@name", txtName.Text) 
    Dim objReader As SqlDataReader 


    myConn.Open() 
    objReader = myCmd.ExecuteReader() 

    FailureText.Text = " " 

    If objReader.Read() Then 
     Dim pass As String = objReader.GetString(2) 
     Dim cusId As Integer = objReader.GetValue(0) 

     If pass = txtPassword.Text Then 
      Failure.Text = "Login Successful" 
      Session("name") = txtName.Text 
      Session("Password") = txtPassword.Text 
      Session("customerID") = cusId 

      my.Dispose() 
      myConn.Dispose() 
      Response.Redirect("CustomerHome.aspx") 


     Else 
      FailureText.Text = "Invalid Password" 



     End If 
    Else 
     FailureText.Text = "Login Name does not exist" 

    End If 




End Sub 
+0

ロールベースの認証を使用 – Neha

+0

@ネハ私はそれを使用する方法がわからない、私は私の方法を使用していたどのように私は続行するつもりですか? – devilking

+0

私が気づいたことの1つは、ユーザーが無効な場合に接続を閉じることではないということです。 usingステートメントを使用して接続が常に閉じられるようにします。 –

答えて

0

ユーザーが顧客であるかどうかを検証するプロセスと同じプロセスを繰り返して、管理者であることを検証することができます。

次のように入力します。FailureText.Text = "Login Name does not exist"上記のコードを繰り返して、指定されたユーザー名とパスワードが管理者にマップされているかどうかを最初に検証できます。その場合は、Adminのセッションを設定し、管理ページにリダイレクトします。そうでない場合は、失敗テキストを表示します。

コードが読み取り可能であることを確認するために、私はvalidate関数をメイン関数(リファクタリング)から呼び出される複数の関数に分割します。だからあなたはIsValidCustomerIsValidAdministratorのような機能を得るでしょう。

+0

どうですか? – devilking

+0

は、自分のコードを使ってどのように処理されているかを表示できますか? – devilking

関連する問題