/ / При використанні цільового ідентифікатора ajax, сторінка входу відображається всередині тегу div після завершення автентифікації. MVC2 - asp.net-mvc

При використанні цільового ідентифікатора оновлення ajax, сторінка входу отримала візуалізацію в тезі div після завершення аутентифікації. MVC2 - asp.net-mvc

час очікування через автентифікацію форми.вся моя сторінка входу отримує візуалізацію всередині div через оновлений ajax атрибут цільового ідентифікатора. чи є якесь рішення, при якому моя сторінка входу відкривається в новому вікні після аутентифікації таймауту замість відображення в тезі div.

я можу надати весь свій код, якщо це потрібно. допоможіть мені люди.

Спасибі заздалегідь!

Відповіді:

1 для відповіді № 1

У мене була та сама проблема з веб-додатком, що і у менепрацює на. Вам потрібно встановити контролер входу з його частковим видом, включаючи ТІЛЬКИ потрібні поля входу. Коли термін дії програми закінчиться, ви будете перенаправлені на контролер входу, який поверне частковий вигляд, що включає лише ті поля, які ви хотіли. Крім того, ви можете використовувати JQuery або JS, щоб приховати всі елементи, які вам нецікаво показувати на цій сторінці.

Не забудьте встановити контролер входу у веб-конфігурації на час очікування

<authentication mode="Forms">
<forms loginUrl="~/Login" timeout="9000" />
</authentication>

Сподіваюся, це допоможе.


0 для відповіді № 2

нарешті я отримав інший шлях

У своїй дії входу ви можете додати спеціальний заголовок HTTP-відповіді:

public ActionResult LogOn(){
{
var model = ...
Response.AppendHeader("X-LOGON", "Checked");
return View(model);
}

а потім підписатися на повну подію та перевірити наявність цього заголовка та діяти відповідно:

$.ajax({
url: "/home/some_protected_action",
success: function (data, textStatus, XMLHttpRequest) {
if (XMLHttpRequest.getResponseHeader("X-LOGON") === "Checked") {
// the LogOn page was displayed as a result of this request
// probably timeout => act accordingly
window.location = "<%=Url.Content("~/Account/LogOn") %>";
window.location.reload();
}
}
});