Nethaji chennai Ответов: 1

Некоторое время вход в систему не удался


я создаю простую страницу входа в систему с помощью ajax ,jquery и webmethod первый раз войти не удалось. точка останова вызывается каждый раз, и sql-запрос выполняется успешно, но предупреждение об успехе не приходит через некоторое время. некоторое время выполняйте успешно. и не войти другие системы для использования в IIS Лизу помочь мне одна . заранее спасибо.если после успешного входа в систему не наступит этот вопрос в определенное время

Что я уже пробовал:

<script type="text/javascript">
    function login_tracking(username,password)
    {
    var obj = {};
        obj.username = username;
        obj.password= password;
            $.ajax({
            url: "Tracking.aspx/login",
            data: JSON.stringify(obj),
            dataType: "json",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            success: function(data) { 
            alert("sucess");
            var d=data.d.length;
            if(d==0)
            {
            alert("Login Failed");
            }
            alert(data.d[0].username + "  Login Sucessfully");
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert('Login Error');
            }
        });
    
    }
     </script>


public static List<loginclass> login(string username, string password)
   {
       MasterLogic objMas = new MasterLogic();
       List<loginclass> login = new List<loginclass>();
       string qry = " select a.CompanyCode,CompanyName,UserName from webuser_master a,company_master b " +
                    " where a.CompanyCode=b.CompanyCode and a.UserId ='" + username + "' and " +
                    " a.UserPWD='" + password + "' and a.Status='1' group by b.CompanyName ";
       DataTable dt = objMas.GetDataTable(qry);
       if (dt == null)
           return login;
       DataSet ds = new DataSet();
       ds.Tables.Add(dt);
       string code, uname,cname;
       List<datarow> list = dt.AsEnumerable().ToList();
       foreach (DataRow dr in dt.Rows)
       {
           code = dr["CompanyCode"].ToString();
           uname = dr["UserName"].ToString();
           cname = dr["CompanyName"].ToString();
           login.Add(new loginclass(code,uname,cname));
       }

       return login;


   }

1 Ответов

Рейтинг:
2

OriginalGriff

Здесь происходит так много неправильных вещей...давайте просто поразим основные моменты с помощью двух лучших "самых опасных вещей, которые нужно делать при входе в систему пользователей".:

1) Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы. А конкатенация строк при входе в систему не только передает вашу БД всем желающим, но и позволяет им полностью обойти вашу безопасность и войти в систему как вы или любой другой пользователь, даже не зная вашего пароля...

2) Никогда не храните пароли в открытом тексте - это серьезная угроза безопасности. Здесь есть некоторая информация о том, как это сделать: Хранение паролей: как это сделать.[^]