ストアド プロシージャから機能するログイン ページを開発しました。ログイン部分は適切に機能しますが、Web サイトは、ユーザーが安全なセクションにログインした後にどのページに移動するかを決定するロールで構成されます。データベース/テーブルで注目している列は次のとおりです。 Guid -0 列 Login_name -9 番目の列 Login_Pwd -10 番目の列 Role_ID -11 番目の列 / 1 または 2 の値を含む
私がやろうとしているのは、ログイン ページを取得して、Role_ID が 1 のユーザーと Role_ID が 2 のユーザーを区別することです。しかし、現在、ページにログインすると、SecurePage にリダイレクトされます。ユーザーが持っているロール ID に関係なく、.aspx。これについて何か方向性を教えてください。
これは私のストアドプロシージャです:
ALTER PROCEDURE [dbo].[Check_Users]
@Login_name as varchar(100),
@Login_Pwd as varchar(50)
AS
/* SET NOCOUNT ON */
SELECT * FROM SupplierCompany WHERE Login_name=@Login_name AND Login_Pwd=@Login_Pwd
RETURN
これは私のログインボタンの背後にあるコードです:
Try
Dim con As New SqlConnection(GetConnectionString())
con.Open()
Dim cmd As New SqlCommand("Check_Users", con)
cmd.CommandType = CommandType.StoredProcedure
Dim p1 As New SqlParameter("Login_name", username.Text)
Dim p2 As New SqlParameter("Login_Pwd", password.Text)
cmd.Parameters.Add(p1)
cmd.Parameters.Add(p2)
Dim rd As SqlDataReader = cmd.ExecuteReader()
If rd.HasRows Then
rd.Read()
lblinfo.Text = "You are Authorized."
FormsAuthentication.RedirectFromLoginPage(username.Text, True)
Response.Redirect("securepages/SecurePage.aspx")
Else
lblinfo.Text = "Invalid username or password."
End If
'check the Role of the usre logging in
While (rd.Read())
Session("numrecord") = rd.GetValue(0).ToString()
rd.GetValue(11).ToString()
If rd.GetValue(11).ToString() = 1 Then
Response.Redirect("securepages/SecurePage.aspx")
ElseIf rd.GetValue(11).ToString() = 2 Then
Response.Redirect("securepages/newShipment.aspx")
End If
End While
Catch
Finally
End Try
..どんな支援も大歓迎です。