【问题标题】:What should I do If I want to maintain session between HTTP and HTTPS - Asp.Net如果我想保持 HTTP 和 HTTPS 之间的会话,我应该怎么做 - Asp.Net
【发布时间】:2010-11-14 16:02:29
【问题描述】:

如果我想保持 HTTP 和 HTTPS 之间的会话,我应该怎么做。在我网站的公共区域中,有些页面是 HTTP,有些是 HTTPS,但我想保持两者的共同会话..

【问题讨论】:

  • 如果你这样做了,那是不是意味着你实际上是在取消你的 https 的任何有效性?

标签: asp.net session ssl https


【解决方案1】:

一旦您的用户通过身份验证,无论他们使用 HTTP 还是 HTTPS 访问页面,他们都将继续拥有相同的会话 cookie,直到过期。确保在会话 cookie 上使用加密,以便在通过不安全的协议传递它时更难破解。您可能想查看session hijacking 上的维基百科文章以了解更多信息。

【讨论】:

    【解决方案2】:

    除了默认的“In Proc”之外,您可以使用 ASP.NET 中的许多会话状态模式(可以在 web.config 中配置):

    StateServer 模式,它将会话状态存储在称为 ASP.NET 状态服务的单独进程中。这可确保在重新启动 Web 应用程序时保留会话状态,并且还使会话状态可用于 Web 场中的多个 Web 服务器。

    SQLServer 模式将会话状态存储在 SQL Server 数据库中。这可确保在重新启动 Web 应用程序时保留会话状态,并且还使会话状态可用于 Web 场中的多个 Web 服务器。

    自定义模式,可让您指定自定义存储提供程序。

    ASP.NET Session-State Modes on MSDN。我还没有针对 HTTPS 进行过测试,但希望 StateServer 或 SQLServer 可以促进这一点。

    【讨论】:

      【解决方案3】:

      每个用户的每个应用程序维护一个会话。因此,如果您有一个应用程序有一些页面通过 https 和一些通过 http 提供服务,那么您不必担心从 https 移动到 http 时会创建新会话,反之亦然。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-12
        • 2010-11-25
        • 2011-01-22
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        • 1970-01-01
        • 2020-12-28
        相关资源
        最近更新 更多