【问题标题】:ASP.NET session timeout notification in Silverlight 4Silverlight 4 中的 ASP.NET 会话超时通知
【发布时间】:2011-02-03 19:25:03
【问题描述】:

我有一个托管的 Silverlight 4 应用程序。我的任务是在 Silverlight 用户的 ASP.NET 会话即将到期时通过一个简单的对话框通知他,例如“您的会话即将到期,您要重置会话吗?”有两个按钮 [Yes] 和 [No]。当用户单击 [Yes] 时,我想更新 ASP.NET 会话,否则我会让它过期。在这里使用的最佳方法是什么?

我查看了不同的论坛,大多数人只是不时地从托管 Silverlight 应用程序的页面中轮询服务器。这不适合我。我想创建一个单例 DispatcherTimer,它将在 Silverlight 应用程序启动时启动,使用 WCF 从服务器获取 Session.Timeout 值并运行 (Session.Timeout - some delta) 分钟。当计时器到期时,它会弹出通知窗口。此外,由于此通知窗口仅应在一段时间不活动后弹出,因此我想在每次执行 WCF 调用(本质上定义活动)时重置此计时器。这是声音吗?有没有更好的方法?你有什么想法?

附:我还计划为表单超时做类似的事情。

【问题讨论】:

    标签: asp.net silverlight session


    【解决方案1】:

    您可能反对也可能不反对,但我发现在 RIA 中运行一个计时器来向 ASP.NET 服务器发出保持活动请求以防止会话在应用程序处于活动状态。同时,如果服务器上发生了导致会话过期的事情,你可以在keepalive处理中检测到这种情况,并告诉客户端已经过期。

    【讨论】:

    • 这个想法实际上是在会话到期之前通知用户。此外,在您的场景中,如果用户长时间打开应用程序,则保持活动的请求将继续发生,并且会话将一直保持到 Silverlight 应用程序实际关闭,我是否正确?如果是,那么这不是一个理想的分辨率。如果不是,请解释。现在我正在尝试使用 IPropertyInspector 在 WCF 中集成计时器重置。
    猜你喜欢
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    相关资源
    最近更新 更多