ASP.NET - обрабатывать перенаправление после асинхронной обратной записи - PullRequest
1 голос
/ 27 июня 2011

У меня есть веб-приложение ASP.NET, которое использует панели обновления. Веб-приложение интегрировано в среду единого входа SiteMinder.

Проблема возникает, когда Siteminder считает, что пришло время для повторной аутентификации пользователя. Когда пользователь выполняет действие, которое приводит к асинхронной обратной передаче, Siteminder перехватывает этот запрос и отправляет ответ перенаправления на свою страницу входа в систему.

Моя страница ASP.NET не ожидает этого и выдает исключение PageRequestManagerParserErrorException.

Я предполагаю, что мне нужно перехватить этот ответ перенаправления в клиентском коде (используя событие PageRequestManager?) И правильно обработать перенаправление.

Но как?

1 Ответ

1 голос
/ 10 января 2012

У меня такая же проблема. Я нашел одно решение здесь: http://forums.asp.net/t/1470176.aspx/1

Я получил следующий javascript на каждой странице:

function pageLoad() {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

function EndRequestHandler(sender, args) {
    if (args.get_error() != undefined) {
        if (args.get_response().get_responseData().indexOf("<HTML><HEAD><TITLE>") == 0) {
            args.set_errorHandled(true);
            __doPostBack("", "");
        }
        else {
            // not my error so let the default behavior happen
        }
    }
}

Останавливает полный запуск страницы, но выполняет полное обновление страницы вместо асинхронной обратной передачи после тайм-аута SSO на клиенте.

...