Как получить данные в ASP.net MVC - PullRequest
0 голосов
/ 03 апреля 2012

Я пытаюсь получить значение IsAdmin с помощью SQL-запроса (этот запрос возвращает 1 строку или 0). но я получаю эту ошибку {"недопустимое чтение Предположительно нет никаких данных."} Это мой код

        public static bool Login (string iduser, string password, bool IsAdmin)
    {
        bool auth = false;
        string query = string.Format("Select IsAdmin from [user] where iduser = '{0}' AND mdp = '{1}' ;", iduser, password);
        SqlCommand cmd = new SqlCommand(query, con);
        con.Open();
        SqlDataReader re = cmd.ExecuteReader();
        auth = re.HasRows;
        if (auth) { IsAdmin = re.GetBoolean(0); } // the error is on this line (this line will alow me to get IsAdmin Value If the user exist)
        con.Close();
        return auth;

    }

Ответы [ 2 ]

6 голосов
/ 03 апреля 2012

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

Как это:

public static bool IsAdmin(string iduser, string password)
{
    using (var conn = new SqlConnection(ConnectionString))
    using (var cmd = conn.CreateCommand())
    {
        conn.Open();
        cmd.CommandText = @"
            SELECT IsAdmin 
            FROM [user] 
            WHERE iduser = @iduser AND mdp = @mdp;
        ";
        cmd.Parameters.AddWithValue("@iduser", iduser);
        cmd.Parameters.AddWithValue("@mdp", password);
        using (var reader = cmd.ExecuteReader())
        {
            return reader.Read() && reader.GetBoolean(reader.GetOrdinal("IsAdmin"));
        }
    }
}
0 голосов
/ 03 апреля 2012

Вам нужно позвонить

re.Read();

чтобы переместить считыватель на первую запись, прежде чем пытаться получить доступ к данным. re.HasRows не заставляет читателя перейти к первой записи.

Кроме того, определенно использует параметризованные запросы.

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