1

入力したデータを自動保存するWebページがあります。そのために、ASP.NETタイマーを使用します。しかし、私の問題は、非アクティブのためにセッションをタイムアウトさせたいので、セッション時間を更新せずにタイマーにティックを呼び出させることができますか?

これがコードです、申し訳ありませんが、まだ画像をアップロードできませんでした:=

<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>


<asp:Timer ID="SaveTimer" runat="server" Interval="150000"
    ontick="SaveTimer_Tick">
</asp:Timer>
<asp:UpdatePanel runat="server"  updatemode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger controlid="SaveTimer"
            eventname="Tick"  />
    </Triggers>
    <ContentTemplate>
    </ContentTemplate>
</asp:UpdatePanel>
4

4 に答える 4

1

あなたが望むと思うのは、ユーザーがそのページで作業している限り、セッションを維持することです。自動保存オプションをトリガーしない場合、変更がない場合は、サーバーに戻らず、セッションを更新しません。その場合、ユーザーがそのページでの作業を停止すると、セッションは最終的にタイムアウトになります。

繰り返しますが、実際に保存する変更がある場合にのみ、サーバーにコールバックしてください。

于 2012-06-28T09:38:06.323 に答える
0

私はこれを行うことで同様のことをしました:

Response.Cookies.Remove(FormsAuthentication.FormsCookieName);

セッションのタイムアウトを正確に止めるわけではありませんが、クライアントで Cookie を更新しないと、最終的にどのセッションを使用していたかを忘れてしまいます。フォーム認証を使用していない場合は、他の Cookie を削除する必要があると思います。

于 2012-06-28T09:26:27.263 に答える
0

セッションに影響を与えずに自動保存を行う唯一の方法は、セッションを持たないページEnableSessionState="false"またはハンドラーでそれを行う場合です。

その場合、ハンドラー (またはセッションなしのページ) がデータをデータベース (セッションではなく) に保存する場所を認識できるように、URL からエンコードされたいくつかのパラメーターを渡す必要があります。

于 2012-06-28T09:24:21.713 に答える