Я новичок в ASP.net, и это мой первый WebApp. Я столкнулся с проблемой в своем приложении относительно сеанса, так это то, что когда я выхожу из системы и нажимаю кнопку назад браузера, он снова подталкивает меня в приложении. Я использую код, как показано ниже:Управление сеансом пользователя в ASP.net
protected void Page_Load(object sender, EventArgs e)
{
if (Session["LiveUser"] != null)
{
}
else
{
Response.Redirect("InvalidForm.aspx");
}
}
protected void ButtonLogOut_Click(object sender, EventArgs e)
{
Response.Redirect("LoginForm.aspx");
Session["LiveUser"] = null;
}
Кнопка выхода из системы:
<asp:Button ID="ButtonLogOut" runat="server" CssClass="btnLogout"
Text="Log Out" OnClick="ButtonLogOut_Click" />
Войти код кнопки позади:
protected void btnSubmit_Click(object sender, EventArgs e)
{
string query = "select UserActive from nWorksUser where Username='" + this.txtUsername.Text + "' and _password='" + Encrypt(this.txtPassword.Text) + "';";
MySqlCommand cmd = new MySqlCommand(query, conn);
MySqlDataReader rdr;
conn.Open();
rdr = cmd.ExecuteReader();
string ActiveUser = "";
while (rdr.Read())
{
ActiveUser = rdr.GetString("UserActive");
}
conn.Close();
if (ActiveUser == "true")
{
if (trylogin(txtUsername.Text, txtPassword.Text) == true)
{
Session.Add("LiveUser",GetUsername());
Response.Redirect("AttendanceForm.aspx");
}
else
{
lableMessage.Text = "Wrong Credentials. Please try again";
}
}
else
{
conn.Open();
query = "select UserActive from nWorksUser where Username='" + this.txtUsername.Text + "';";
MySqlCommand cmd1 = new MySqlCommand(query, conn);
MySqlDataReader rdr1;
rdr1 = cmd1.ExecuteReader();
ActiveUser = "";
while (rdr1.Read())
{
ActiveUser = rdr1.GetString("UserActive");
}
conn.Close();
if (ActiveUser == "true")
{
lableMessage.Text = "Wrong Credentials. Please try again";
}
else if (ActiveUser == "")
{
lableMessage.Text = "User is anavailable..!!";
}
else
{
lableMessage.Text = "User is expired..!!";
}
}
Если нажать кнопку назад браузера после выхода из Прогнозный ведут себя, это спросить для имени пользователя/пароля не нажать еще раз в приложении. Каким должно быть решение?
У вас есть ОГРОМНАЯ проблема безопасности с SQL Инъекции имя пользователя Пароль! Никогда не комбинируйте SQL-строку как это, используйте sql-параметры! –