【问题标题】:ASP.NET mixed windows/forms authentication problem with session objects会话对象的 ASP.NET 混合 Windows/窗体身份验证问题
【发布时间】:2009-04-02 18:19:25
【问题描述】:

这里有一个奇怪的问题,我们正在运行一些混合环境 Web 应用程序,它们使用 Windows 或 Forms 身份验证,具体取决于用户来自哪里。

我很好奇其他人如何处理过期的会话,以避免有人将空闲会话打开太久然后尝试恢复工作,主要是寻找有关该主题的最佳做法。

任何建议或意见将不胜感激。

谢谢,

【问题讨论】:

    标签: asp.net expired-sessions mixed-authentication


    【解决方案1】:

    我不确定您的身份验证方法如何影响会话超时,他们用于进入的机制不应影响他们可以停留多长时间。

    一般来说,如果某人确实有一个过期的会话,您可以添加代码来检查他们的会话是否处于活动状态。如果不是,只需将它们重定向到登录页面,或显示一些其他友好文本。

    基本上是这样的:

    if (Session.IsNewSession) 
       Response.Redirect("login.aspx");
    

    【讨论】:

    • 您建议检查的最干燥的地方在哪里?
    • 这真的取决于您网站的结构。如果您使用母版页,您可以将它添加到它的 Page_Load 或 Page_Init 中。如果你有一个共享的用户控件,你可以将它添加到它的 Page_Init 中。您也可以手动将其添加到使用会话数据的每个页面的 Page_Load 中。
    • 我不喜欢在这么多页面上维护一些东西的想法,我们正在做母版页,而且效果很好,谢谢。
    【解决方案2】:
    • 不要在会话中存储不必要的信息。
    • 如果您要存储可以重新加载的内容,请使用适当的代码在会话中找不到时重新加载它
    • 考虑是否需要长时间处理某些进程,在这种情况下将中间信息保存到数据库中。
    • 如果用户正在执行使用会话的进程,并且数据丢失,请将他们带到第 1 步(如果您在其他地方没有信息,您无能为力)。

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 2019-09-08
      相关资源
      最近更新 更多