Подтвердить что ты не робот

Аутентификация форм jQuery с помощью ASP.NET MVC

Можно ли использовать jQuery ajax-вызов для выполнения проверки подлинности с помощью ASP.NET MVC? Я не смог найти таких примеров.

В частности, как установить файл cookie auth на странице (без перенаправления), чтобы я мог выполнять последовательные аутентифицированные запросы ajax?

4b9b3361

Ответ 1

Да, это возможно. Просто отправьте форму входа в систему с помощью метода описанного здесь mike bosch, и верните jast datastructure с returnUrl, если таковой имеется.

Я создал легкий класс LoginResultDTO, который я возвращаю как json:

public class LoginResultDTO
{
  public bool Success {get;set;}
  public string Message {get;set;}
  public string ReturnUrl {get;set;}
}

Здесь script блок из моего представления LogOn:

<script type="text/javascript">
        $(document).ready(function() {
            var form = $($("form")[0]);
            form.submit(function() {
                var data = form.serialize();
                $.post(form.attr("action"), data, function(result, status) {
                    if (result.Success && result.ReturnUrl) {
                            location.href = result.ReturnUrl;
                    } else {
                        alert(result.Message);
                    }
                }, "json");
                return false;
            });
        });
</script>

Это приведет к тому, что ajax обернет форму входа в систему. Обратите внимание, что это самая простая реализация javascript-кода, но это место для начала.

Затем я изменил действие LogOn в AccountController и в соответствующих местах поставлю что-то вроде этого:

if(Request.IsAjaxRequest())
{
  return Json(new LoginResultDTO{Success=true,Message="Successfully logged in"});
}else
{
  return View();
}

Итак, это сверхлегкая, но довольно полная версия того, как можно выполнить аутентификацию jquery в asp.net mvc.

Ответ 2

Стив Рейнольдс имеет хорошую статью о том, как это сделать.

Ссылка на статью

Ответ 3

Взгляните на xVal. Он может использовать любую библиотеку проверки на стороне клиента, но по умолчанию использует jQuery Valiation.