в изчакване поради удостоверяване на формата. цялата ми страница за вход се оказва вътре в 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();
}
}
});