Доступ к страницам через авторизацию asp
Хотелось бы правильно настроить аутентификацию, чтобы запретить прямой переход по URL. Выполняю аутентификацию таким способом через Textbox'ы Правильно или нет я сделал?
protected void LoginButton_Click1(object sender, EventArgs e)
{
try
{
if (ValidateUser(Login1.UserName, Login1.Password)) FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);
else Label1.Text = "Клиент не найден";
}
catch (Exception ex)
{
Label1.Visible = true;
Label1.Text = "An error has occurred, please try again later!";
System.Diagnostics.Trace.WriteLine("[ValidateUser] Exception " + ex.Message);
}
}
private bool ValidateUser(string UserName, string Password)
{
con = new SqlConnection(connectionString);
con.Open();
I = 0;
cmd = new SqlCommand("SELECT login FROM Users WHERE SiteID=@SiteID and password=@password", con);
cmd.Parameters.AddWithValue("@SiteID", int.Parse(UserName));
cmd.Parameters.AddWithValue("@password", int.Parse(Password));
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
con.Close();
I = Convert.ToInt32(dt.Rows.Count.ToString());
if (dt.Rows.Count > 0)
return true;
else return false;
}
но настроить файл config пока не получается. Либо закрывается полный доступ либо переход по прямым ссылкам происходит
Пока оставил так
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="Contact.aspx">
</forms> </authentication>
</system.web>
После ввода логина и пароля переход происходит, но переходит и по прямым URL что как раз я и хочу запретить, но мне еще надо передать строковый параметр со страницы логин. Выглядит примерно так после перехода
