0
私はデータベースにユーザー名とパスワードを入力し、挿入されたユーザー名とパスワードに従ってユーザー役割を取得したいが、このコードは仕事データベースから受け取ったユーザーの役割を判断する方法
public bool Login(out string Msg)
{
bool b = true;
Msg = "";
SqlConnection con = new SqlConnection(connection.connectstr);
try
{
con.Open();
SqlCommand com = new SqlCommand("user_proc", con);
com.CommandType = CommandType.StoredProcedure;
com.Parameters.Add("@u_name", SqlDbType.NVarChar).Value = this.u_name;
com.Parameters.Add("@u_password", SqlDbType.NVarChar).Value = this.u_password;
com.ExecuteNonQuery();
con.Close();
b = true;
}
catch (Exception ex)
{
con.Close();
Msg = ex.Message;
b = false;
}
return b;
}
、データベースに役割を確認し、管理し、クライアントのページでない場合場合は、サーバーのページに私をリダイレクトする必要がありますC#コード: -
protected void btn_login_Click(object sender, EventArgs e)
{
my_user u = new my_user();
u.u_name = TextBox1.Text;
u.u_password = TextBox2.Text;
string m="";
if (!u.Login(out m))
{
lbl_role.Text = "error";
}
else
{
if (u.u_role == "admin")
{
Response.Redirect("testclient.aspx");
}
else Response.Redirect("testserver.aspx");
}
}
とデータベースそのタスクを実行する手順は次のとおりです。
create procedure user_proc
(@u_name nvarchar(50) ,
@u_password nvarchar(50),
@u_role nvarchar(50))
as
begin
begin try
begin transaction
if exists (select u_role from user_sys
where [email protected]_name and u_password= @u_password)
commit
End try
Begin catch
rollback
declare @msg varchar(200)
set @msg = ERROR_MESSAGE()
raiserror(@msg , 16 , 1)
End catch
End