2

Windows認証を使用し、ベースマスターページクラスのプリレンダーでメタタグを使用してセッションを期限切れにする.Net 3.5 Webサイトがあります。

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    if (Response.ContentType == "text/html")
        this.Page.Header.Controls.Add(new LiteralControl(
            String.Format("<meta http-equiv='refresh' content='{0};url={1}'>",
            SessionLengthMinutes * 60, SessionExpireDestinationUrl)));
}

これは、完全なポストバックを行うページに適しています。ただし、私のアプリケーションには、ユーザーが更新パネル内で多くの作業を行うページがいくつかあります。私の会社のポリシーは、15 分のタイムアウトです。つまり、更新パネル ページ内で 15 分間作業した後、ユーザーはアプリケーションのスプラッシュ ページにリダイレクトされます。

非同期ポストバックでメタ タグをリセットまたは拡張する方法はありますか? それとも、これを完全に達成するためのより良い方法でしょうか?

4

3 に答える 3

1

これを完全に達成するためのより良い方法は、javascript を使用することです。これにより、ページがブックマークされている場合に、メタ リフレッシュに関連する問題が回避されます。

META REFRESH ページの代わりに、次の JavaScript を使用します。

<script type="text/javascript">
    var _timerID = setTimeout("window.location='splash-url'", 900000); //15 mins
</script>

更新パネルからリクエストを行うときは、次の JavaScript を使用します。

<script type="text/javascript">
    clearTimeout(_timerID);
    _timerID = setTimeout("window.location='splash-url'", 900000); //15 mins
</script>
于 2010-09-30T14:37:22.877 に答える
0

過去に、AJAX 呼び出しに応答するメソッドで WebMethod(EnableSession = true) 属性を使用しました。

于 2010-09-17T23:43:07.357 に答える
0

AJAX リクエストを使用して、セッションを維持することもできます。これは、ユーザーがブラウザでページを開いている限り機能します。http://808.dk/?code-ajax-session-keepaliveを参照してください

于 2010-09-22T22:53:35.283 に答える