我遇到了问题。当我使用公共DataTable方法时,我的会话工作正常。但我扩展了我的登录安全性。所以我现在使用公共Bool metod。
我不知道如何在以下代码中使用Session?这是按钮: (UserLogin是Bool,GetUser是DataTable(评论)
protected void btnLogin_Click(object sender, EventArgs e)
{
DataTable dtUser = new DataTable();
if (txtBrugernavn.Text != "" && txtAdgangskode.Text != "")
{
if (objLogin.UserLogin(txtBrugernavn.Text, txtAdgangskode.Text))
{
// Session here!
Response.Redirect("Admin/Default.aspx");
}
else
{
litResult.Text = "<div class='error'>Du har skrevet forkert brugernavn eller adgangskode</div>";
}
}
//DataTable dtUser = new DataTable();
//dtUser = objLogin.GetUser(txtBrugernavn.Text, txtAdgangskode.Text);
//if (dtUser.Rows.Count > 0)
//{
// Session["Username"] = dtUser.Rows[0]["fldUsername"];
// Response.Redirect("Admin/Default.aspx");
//}
//else
//{
// litResult.Text = "<div class='error'>Du har skrevet forkert brugernavn eller adgangskode</div>";
//}
}
这是bool方法:
public bool UserLogin(string Username,string Password) {
bool UserExist = false;
objCMD = new SqlCommand("SELECT fldSalt FROM tblUsers WHERE fldUserName = @Username");
objCMD.Parameters.AddWithValue("@Username", Username);
if (objData.GetData(objCMD).Rows.Count > 0)
{
kryptering objKryptering = new kryptering();
string salt = objData.GetData(objCMD).Rows[0]["fldSalt"].ToString();
objCMD = new SqlCommand("SELECT * FROM tblUsers WHERE fldUserName = @Username AND fldPassword = @Password");
objCMD.Parameters.AddWithValue("@Username", Username);
objCMD.Parameters.AddWithValue("@Password", objKryptering.HashPassword(Password, salt));
if (objData.GetData(objCMD).Rows.Count > 0)
{
UserExist = true;
}
}
return UserExist;
}