Нужна помощь в перенаправлении входа с использованием asp.net - PullRequest
1 голос
/ 30 января 2009

У меня проблема со страницей входа. Если я не ввожу имя пользователя или пароль, он должен сказать, что «пожалуйста, введите имя пользователя или пароль», вместо того, чтобы перейти на страницу назначения, я имею в виду, не вводя ничего в поле Логин, если я нажму кнопку «Отправить» будет страница приветствия, чего не должно быть.

Вот мой код, пожалуйста, кто-нибудь, скажите мне, где моя ошибка:

public class Login
{
  public string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
    public int GetLogin(string UserName, string Password)
    {
      SqlConnection con = new SqlConnection(str);
      SqlDataAdapter da = new SqlDataAdapter("select * from Login where UserName='"+UserName+"' and Password='"+Password+"'",con);
 DataSet ds = new DataSet();
        da.Fill(ds);
        if (ds.Tables[0].Rows.Count > 0)
        {
            if ((ds.Tables[0].Rows[0].ItemArray[0].ToString() == UserName) && (ds.Tables[0].Rows[0].ItemArray[1].ToString() == Password))
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }

        else
        {
            return -1;
        }
    }
Login.aspx.cs:
protected void BtnLogin_Click(object sender, EventArgs e)
    {
        Session["UserName"] = TxtUserName.Text;      

        Login lg = new Login();    

        if ((lg.GetLogin(TxtUserName.Text, TxtPassword.Text) == 1))
        {
            Response.Redirect("c1.aspx");

        }

        else if((TxtUserName.Text=="")&&(TxtPassword.Text==""))
        {
            Lbl1.Text = "Please Enter the UserName and Password";
        }

        else
        {

            Lbl1.Text = "Sorry,Invalid UserName or Password";
        }             

    }

Ответы [ 3 ]

5 голосов
/ 30 января 2009

Все эти функции уже встроены в ASP.NET.

Извлечение RequiredFieldValidator для проверки ваших полей или использование Контроль входа в систему для обработки всех функций формы.

Извлечение FormsAuthentication и Членство для аутентификации пользователя.

4 голосов
/ 30 января 2009

Я действительно не знаю, в чем проблема, потому что похоже, что она должна работать, но у вас есть огромная проблема с SQL-инъекцией. Проверьте это в тестовой базе данных, но введите это для своего имени пользователя.

' and 1 = 1; drop table Login; --

Могу ли я предложить вам поискать SqlParameter и выполнить поиск для "SqlParameter SQL Injection Attack"

1 голос
/ 30 января 2009

1.- пользователь и пустые проверки проходят после вызова db, поэтому, если у вас есть пустой пользователь с пустым паролем, логин будет успешным

2.- вы создаете SQL-запрос, который открыт для SQL-инъекций, используйте параметризованные запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...