У меня есть страница aspx, получающая адрес электронной почты от конечного пользователя и вызывающая ajax ниже:
function IfEmailExists() {
$.ajax({
url: "Handler.ashx",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: { 'Email': $('#txtEmail').val(), 'Method': 'IfEmailExists' },
responseType: "json",
success: OnCompleteIfEmailExists,
error: OnFail
});
return false;
}
Функция ниже запускается в Handler.ashx.cs после запуска ajax-части:
case "IfEmailExists":
ss = new Staff();
string Email = context.Request["Email"];
string IsEmailExist = javaScriptSerializer.Serialize(ss.CheckIfEmailExists(Email));
context.Response.ContentType = "text/html";
context.Response.Write(IsEmailExist);
return;
В классе «Персонал» приведенная ниже функция запускается с помощью кода выше:
public int CheckIfEmailExists(string Email)
{
int outputEmail = 0;
SQLDatabase sqldb = new SQLDatabase();
DataTable dt = new DataTable();
dt = sqldb.ExecStoredProcedureDataTable("[spDoesEmailExists]", new SQLParamList().Add("@Email", Email));
if (dt.Rows.Count > 1)
{
outputEmail = 1;
}
else
{
outputEmail = 0;
}
return outputEmail;
}
хранимая процедура [spDoesEmailExists] выполняет:
Select Email from StaffEmailUsage where Email = @Email
Обратите внимание, что существует другая функция ValidateEmail (), которая проверяет, является ли электронная почта действительной.
С помощью этой структуры, когда пользователь пытается использовать адрес электронной почты более одного раза, он (а) получает сообщение об ошибке: This email address has been already used!
по умолчанию. Я пытался передать это, но я всегда получал ошибку.
Проблема в том, что я вижу, что разные люди использовали один и тот же адрес электронной почты более одного раза. Как это возможно, я не мог найти. Я пытался использовать пробелы в начале и в конце адреса электронной почты, отключать JavaScript, используя разные браузеры, но я всегда получал сообщение об ошибке, что ожидается. Как я могу запретить различным пользователям использовать один и тот же адрес электронной почты несколько раз? Любая помощь или совет будут оценены. Благодаря.