#asp.net
#asp.net
Вопрос:
Я пытаюсь проверить, существует ли имя пользователя или нет. Я использую объект XMLHttpRequest на странице html и отправляю значения имени пользователя и пароля на страницу aspx по умолчанию.Но когда я уточняю код.Ничего не происходит.Я имею в виду, что после отладки нет сообщения об исключении или чего-либо еще, я заметил, что состояние соединения открыто, но свойство datareader HasRows возвращает false.Я уверен, что могу передавать значения строки запроса в переменные. И что я упускаю, можете ли вы помочь
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["ka"] != null amp;amp; Request.QueryString["pass"] != null)
{
string username = Request.QueryString["ka"];
string pass = Request.QueryString["pass"];
SqlConnection con = new SqlConnection("server=.\sqlexpress;database=Projects;UID=sa;Password=1234");
if (con.State == ConnectionState.Closed) {
con.Open();
SqlCommand cmd = new SqlCommand("select * from userstable where username=@name and pass=@pass", con);
cmd.Parameters.AddWithValue("@name", username);
cmd.Parameters.AddWithValue("@pass", pass);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
Response.Write("exist");
}
else
{
Response.Write("Doesntexist");
}
con.Close();
}
}
Response.Close();
}
это Htmlpage
<script src="Scripts/jquery-2.1.1.js"></script>
<script type="text/javascript">
function createXHR() {
var xhr;
try {
xhr = new XMLHttpRequest();
} catch (e) {
}
return xhr;
}
function signIn() {
var xhr = createXHR();
var username=$('#txtusername').val();
var pass=$('#txtpass').val()
xhr.onreadystatechange=function(){
if(xhr!=null){
if(xhr.readyState==4){
if(xhr.status>=200 amp;amp; xhr.status<300){
var v = $('#result').html(xhr.responseText);
if (v == "exist") {
$('#result').html("Done");
}
else if (v == "Doesntexist") {
$('#result').html("Error");
}
else{
$('#result').html(v);
}
}
}
}
else{
$('#result').html("Error");
}
}
xhr.open("GET", "Default.aspx?ka='" username "amp;pass=" pass, true);
xhr.send(null);
}
</script>
</head>
<body>
<input id="txtusername" type="text" name="txtusername"/><br />
<input id="txtpass" type="text" name="txtpass"/><br />
<input id="Button1" type="button" value="signin" onclick="signIn();" /><br />
<div id="result" ></div>
</body>
Комментарии:
1. Примечание: Пожалуйста, не храните пароли в виде обычного текста. Пароли пользователей должны быть хэшированы, и вы должны сохранить хэш. Нет причин когда-либо иметь возможность прочитать необработанный пароль пользователя.
2. Возможно, в базе данных нет пользователя с указанным именем пользователя и паролем? 🙂 Кроме того, результатом страницы, скорее всего, будет полноценная HTML-страница, поэтому тестирование
responseText
может быть сложным. Почему вы пишете это как страницу, а не как веб-сервис?