Проверка подлинности с помощью jQuery Forms с помощью ASP.NET MVC - PullRequest
24 голосов
/ 30 января 2009

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

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

Ответы [ 3 ]

18 голосов
/ 30 января 2009

Да, это возможно. Просто отправьте форму входа, используя метод , описанный здесь Майком Бошем , и верните структуру данных json с returnUrl, если таковой имеется.

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

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

Вот блок скриптов из моего вида входа в систему:

<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.

3 голосов
/ 30 января 2009

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

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

0 голосов
/ 30 января 2009

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

...