Короткая версия: Какой лучший способ остаться на той же странице, чтобы выполнить второй вызов AJAX после получения ответа AJAX ASP.NET Membership Authentication?
Длинная версия: представьте веб-программу Paintвстроенный в ASP.NET MVC.Пользователь рисует картинку, в течение которой время сеанса истекло.Пользователь нажимает «сохранить» и получает диалоговое окно AJAX: «Время сеанса истекло. Пожалуйста, введите свои учетные данные ниже».(См. Проверка подлинности с помощью jQuery Forms с помощью ASP.NET MVC , чтобы узнать, как выполнить проверку подлинности AJAX.) После ввода действительных учетных данных пользователь проходит повторную проверку подлинности.
Как правило, на этом этапе пользователиперенаправляется на returnUrl
, что видно по сигнатуре метода входа MVC по умолчанию:
public ActionResult LogOn(LogOnModel model, string returnUrl)
Однако в этом случае я хотел бы остаться на той же странице и вместо этого сделать AJAX-вызов моего обработчика,SaveArt()
, который запишет работу пользователя в базу данных.Я мог бы похитить returnUrl
, чтобы она содержала имя последующей функции Javascript, которую я хотел бы вызвать, но единственный способ, которым я могу думать, чтобы выполнить ее из клиента, - это страшный eval
, который совсем некажется безопаснымЕсть ли другой способ полностью AJAXify этого процесса?В чем опасность использования eval
здесь для запуска функции, имя которой возвращается сервером?