【问题标题】:Is it possible and how to use cookieless ASP.NET session with session id not in URL but in HTTP Header?是否有可能以及如何使用会话 ID 不在 URL 中但在 HTTP 标头中的无 cookie ASP.NET 会话?
【发布时间】:2013-12-28 22:09:52
【问题描述】:

是否有可能以及如何使用 cookieless ASP.NET 会话,会话 ID 不在 URL 中,但在 HTTP 标头中?使用一些自定义开发的 HttpHandler 或 HttpModule

解释为什么需要更轻松地迁移现有产品。最正确的解决方案是从 cookieless=true 切换到 false。但它已经是现有的工作产品,迁移可能不是那么容易。在这种情况下,至少需要努力在多个地方更改代码。想法是例如使用自定义 HTTP 模块重写 URL 并将会话而不是 URL 插入自定义 HTTP Header,否则在向客户端返回响应时。

【问题讨论】:

    标签: asp.net .net session


    【解决方案1】:

    实际上,使用 cookie 等同于使用标头传输会话 ID。如果您使用 cookie,您将看到保存在 cookie 中的值将使用 http 标头传输。也许,如果您更详细地解释您的方案和目标,我们可以为您提供更多指导。

    我不明白通过实施自己的会话识别机制可以获得什么。如果您担心用户 A 会窃取用户 B 的会话令牌并冒充他,那么有一些标准方法可以保护您的应用程序。也许this post 关于会话安全 可以为您提供更多详细信息。如果您坚持使用自定义解决方案,我建议您实施 custom session stored provider,它将与整个 asp.net 工作流程集成。

    希望我能帮上忙!

    【讨论】:

    • 是的,正确的解决方案是从 cookieless=true 切换到 false。但它已经是现有的工作产品,迁移可能不是那么容易。在这种情况下,至少需要努力在多个地方更改代码。想法是例如使用自定义 HTTP 模块重写 URL 并将其而不是 URL 插入自定义 HTTP Header
    猜你喜欢
    • 2012-03-17
    • 2016-11-26
    • 2019-09-29
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 2023-03-17
    相关资源
    最近更新 更多