我提出只是一个很简单的密码输入方式:创建正确的密码后,会议已经进入
cmd.Parameters.AddWithValue("@password", TextBox2.Text);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
if (dt.Rows.Count > 0)
{
Response.Redirect("/login/system.aspx");
}
else
{
Label1.Text = "Your password is incorrect!";
Label1.ForeColor = System.Drawing.Color.Red;
}
我需要做一个会话,提供行计数大于0
喜欢的东西:
Session["LoggedInOk"] = "";
但是,我不应该永远设置TextBox2.Text值(密码)到一个会话应该我?
我该如何创建一个会话,以便如果他们登录到密码访问页面,它们将被重定向,但不会将会话设置为密码。
我可以在“”中创建任何文本吗?
然后在密码访问页面类似?:
if(Session["LoggedInOk"] == null)
{
Response.Redirect("/login/default.aspx");
}
else
{
Session["LoggedInOk"] = true;
}
使用授权或认证会话是不是有什么会议的目的是为和会被认为是不好的做法。使用现有的身份验证/授权框架,如ASP.NET身份验证或内置的成员资格提供程序(后者在很大程度上被前者取代)。这些内置的检查和机制可以自动重定向非授权请求以及可以调用的方法来检查授权或角色检查。 – Igor
我曾见过Session在很多情况下用于查看用户是否已登录,或者如果用户没有登录,还是重定向。这被认为不合适了吗? – cmp
它确实不是。您应该使用现有解决方案来检查用户尝试导航到的网站部分的授权。这会比使用会话检查用户是否通过验证要安全得多。 – Igor