【问题标题】:ASP.NET - Handle redirect after async post backASP.NET - 异步回发后处理重定向
【发布时间】:2011-06-27 11:57:20
【问题描述】:

我有一个使用更新面板的 ASP.NET Web 应用程序。 Web 应用程序集成在 SiteMinder SSO 环境中。

当 Siteminder 认为是时候重新验证用户身份时,就会出现问题。 当用户执行导致异步回发的操作时,Siteminder 会捕获此请求并将重定向响应发送回其登录页面。

我的 ASP.NET 页面没有预料到这一点,并引发了 PageRequestManagerParserErrorException。

我的猜测是我必须在客户端代码中捕获此重定向响应(使用 PageRequestManager 事件?)并正确处理重定向。

但是怎么做呢?

【问题讨论】:

标签: asp.net-ajax pagerequestmanager


【解决方案1】:

我也有同样的问题。我在这里找到了一种解决方案: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 超时,它会执行整个页面刷新而不是异步回发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    相关资源
    最近更新 更多