【发布时间】:2020-02-04 18:27:47
【问题描述】:
我有
管理端和客户端
我只有一张表用于管理员登录和客户端登录,请参阅参考图片
当用户登录然后作为用户插入一个条目?
参考:
我想前任:
数据库入口
用户类型:用户
EmailId:benssok@gmail.com
密码:bens1234
名字:尼克斯
姓氏:安德鲁
代码:
c# 注册客户端:
protected void Button1_Click(object sender, EventArgs e)
{
string firstname = txtFirstName.Text;
string lastname = txtLastName.Text;
string emailid = txtEmailId.Text;
string password = txtclientpassword.Text;
ClientLogin_Click(firstname, lastname, emailid, password);
}`enter code here`
void ClientLogin_Click(string firstname,string lastname,string emailid,string Password)
{
string conn = ConfigurationManager.ConnectionStrings["connstr"].ToString();
SqlConnection cn = new SqlConnection(conn);
string Insertquery = "Insert into tbladminclient(FirstName,LastName,EmailId,Password) values(@FirstName,@LastName,@EmailId,@Password)";
SqlCommand cmd = new SqlCommand(Insertquery, cn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@FirstName", firstname);
cmd.Parameters.AddWithValue("@LastName", lastname);
cmd.Parameters.AddWithValue("@EmailId", emailid);
cmd.Parameters.AddWithValue("@Password", Password);
try
{
cn.Open();
int validateOperation = cmd.ExecuteNonQuery();
if (validateOperation > 0)
{
Response.Write("successfully Registration");
Response.Redirect("ClientLogin.aspx");
}
else
{
Response.Write("Not successfully Registration");
}
}
catch (SqlException e)
{
Response.Write("error");
}
finally
{
cn.Close();
}
}
AdminLogin Page //Same Login(AdminSide) 和sameLogin(ClientSide) 出现的问题有什么区别?如何解决这个问题?如何识别用户(客户端)和管理员(管理员)登录?
protected void Button1_Click(object sender, EventArgs e)
{
string userName = txtEmailId.Text;
string Password = txtUserPassword.Text;
Login_Click(userName, Password);
}
void Login_Click(string emailid, string Password)
{
string conn = ConfigurationManager.ConnectionStrings["connstr"].ToString();
SqlConnection cn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand("select * from tbladminclient where EmailId=@EmailId and Password=@Password", cn);
cn.Open();
cmd.Parameters.AddWithValue("@EmailId", emailid);
cmd.Parameters.AddWithValue("@Password", Password);
SqlDataReader dr = cmd.ExecuteReader(); //data read from the database
if (dr.HasRows == true) //HasRows means one or more row read from the database
{
Response.Write("successfully Login");
}
else
{
Response.Write("Not successfully Login");
}
cn.Close();
}
问题是Login(AdminSide) 和sameLogin(ClientSide) 相同时有什么区别?如何解决这个问题?如何识别用户(客户端)和管理员(管理员)登录?
【问题讨论】:
-
@xdtTransform 我认为这不是重复的问题我成功插入数据有什么问题?问题是我想要当用户在客户端插入一条记录然后自动将用户(用户类型)条目插入到数据库中。
-
P.S.你真的应该对你的密码进行散列和加盐。纯文本密码存在安全风险。
-
P.P.S.
ClientLogin_Click...“登录”对于执行注册用户任务的方法来说是一个糟糕的名称。登录是一项单独的任务。请为变量、类、方法等使用有意义的名称。否则,当您稍后尝试调试或更新代码时,您只会混淆自己和他人。 -
P.P.P.S.说到类,最好的做法是使用类将用户的详细信息从一种方法传递到另一种方法,而不是为每个字段提供单独的参数。
-
或者,这里有一个更好的主意:整个应用程序只有一个登录页面,当用户登录时,从表中获取他们的用户类型并将其存储在 Session 中。然后,每当他们访问“管理”页面时,在显示页面之前检查会话值(实际上您无论如何都需要这样做,否则每个单独的页面都无法知道正在访问哪种用户)。这是完整的基于角色的访问系统的基本开端。
标签: c# sql asp.net sql-server ado.net