Мой вопрос очень похож на этот, но я не мог понять, как Я храню вещи СУХИМИ. Используя ответ на этот пост, я могу аутентифицировать проверку конкретного вызова AJAX, но в моем приложении есть несколько вызовов AJAX, и если я выберу этот подход, мне придется проверять каждый обратный вызов успешного вызова AJAX. Что не совсем круто.
Можете ли вы предложить хороший способ позаботиться об этом и сохранить вещи СУХИМИ?
Javascript
function GetStuff(x) {
if (!x.value) return;
$.post('/website/GetStuff', { val: x.value, text: x.text },
function (data) {
$("#ddlStuff").empty().append($("<option>").attr("value", "0").text("Choose...")).removeAttr("disabled");
$.each(data, function (i, d) { $("<option>").attr("value", d.k).text(d.v).appendTo($("#ddNewStuff")); });
});
}
C#
[HttpPost]
public JsonResult GetSutff(long val, string text)
{
List<string> data = new MyClass().GetDataFromDB(val, text);
return Json(data);
}
Поскольку контроллер, в котором определено действие GetStuff, имеет тег Authorize поверх него. Поэтому все звонки, сделанные здесь, должны быть аутентифицированы. Теперь, если срок действия сеанса истекает, то это действие GetStuff возвращает html домашней страницы (домашняя страница имеет обратный URL-адрес - довольно стандартный материал), и это вызывает проблему. Подобно этому, есть и другие страницы просмотра, чьи действия публикации ajax аутентифицируются, и они также терпят неудачу на стороне клиента, когда сеанс завершается сбоем и возвращается html домашней страницы.
Я хочу, чтобы пользователь был перенаправлен на страницу с истекшим сроком действия сеанса, и хочу знать хороший и классный способ сделать это. Надеюсь, я разъяснил ситуацию. Если нет, дайте мне знать.
Спасибо