/ / При използване на целевия идентификатор за актуализация на Ajax, страницата за вход се оказва вътре в тага div след удостоверяване на времето. MVC2 - asp.net-mvc

При използването на идентификационния номер на целта за актуализация ajax, страницата за влизане се предава в div tag след изтичане на автентичността. MVC2 - asp.net-mvc

в изчакване поради удостоверяване на формата. цялата ми страница за вход се оказва вътре в div заради аякс актуализиран атрибут на target id. има ли някакво решение, при което моята страница за вход се отваря в нов прозорец след изтичане на аутентификацията, вместо да се изобразява в div tag.

мога да предоставя целия си код, ако е необходимо. помогнете ми хора.

Благодаря предварително!

Отговори:

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();
}
}
});