Пишу код на ASP.NET. Есть страничка на которой создаётся новый пользователь, вводится логин и пароль. На аяксе проверяю существует ли пользователь с таким логином.
При obBlur для текстБокса вызывается checkLogin(). Создан хэндлер для проверки существования пользователя IsLoginExistHandler.ashx. После нажатия на кнопку создания пользователя остаёмся на этой же страничке, пользователь помещается в базу данных.
Проблема в следующем: если ввести логин только что созданного пользователя, то хэндлер не запускается( не знаю как проверить происходит ли событие onBlur), и показывается, что пользователя с таким логином нет, как было до его создания. После выключения эксплорера и последующем запуске приложения показывается что логин занят.
Есть ещё проблема, мне кажется, взаимосвязанная с вышеуказанной. Пользователь делает login, переход на страницу, куда доступ есть только у него,копируем адресную строку браузера,logout. Вводим скопированную строку и вуаля — мы на странице куда доступа у нас сейчас нет, но при попытке что либо сделать на ней — получаем ошибку. Срабатывает только с уже посещёнными страницами, пока не выключили браузер.
Есть мысль что это из за кеширования, но хочется услышать мысли грамотных людей.
Ниже указан код на javaScript.
<script type="text/javascript" language="javascript">
var request = null;
function checkLogin()
{
var login = document.getElementById("ctl00_userDataContent_TextBoxLogin").value;
if(login!=null)
{
createRequest ();
request.onreadystatechange = handleStateChange;
request.open("GET", "IsLoginExistHandler.ashx?userLogin="+login, true);
request.send(null);
}
}
function handleStateChange()
{
if(request.readyState == 4)
{
var buttonCreateUser = document.getElementById("ctl00_userDataContent_ButtonCreateUser");
var isLoginFree = document.getElementById("ctl00_userDataContent_IsLoginFree");
if(request.responseText=="false")
{
isLoginFree.style.color="Green";
isLoginFree.innerHTML = "Логин свободен";
buttonCreateUser.disabled=false;
}
else
{
isLoginFree.style.color="Red";
isLoginFree.innerHTML = "Логин уже используется";
}
}
}
function createRequest(){//Создаю request}
</script>
17.04.09 21:39: Перенесено модератором из 'Прочее' — Кодт