gpt4 book ai didi

.net - .NET 中的 URL 重写在无 cookie session 中表现不佳

转载 作者:行者123 更新时间:2023-12-01 05:46:59 24 4
gpt4 key购买 nike

我目前正在使用 Intelligencia's URL Rewriter .NET HTTPModule 重写 URL。我正在使用它的自定义转换功能,它允许我提供一个包含执行实际 URL 转换的方法的程序集。

我打开了 cookieless session ,这对 URL 重写器造成了一些干扰。

所以,假设我的服务器上的路径是这样的:
http://www.foobar.com/actualPath/index.aspx

但我想使用 url 重写使路径看起来像这样:
http://www.foobar.com/rewrittenPath/index.aspx

我制作了一个脚本来输出以下内容:
- Request.Url(来自我的代码隐藏)
- Request.RawUrl(来自我的代码隐藏)
- document.location(来自javascript)

我在地址栏中键入以下内容:
http://www.foobar.com/rewrittenPath/index.aspx

当我禁用 cookieless session 时,一切正常。我的脚本输出以下值:
- Request.Url 显示为 http://www.foobar.com/actualPath/index.aspx
- Request.RawUrl 显示为/rewrittenPath/index.aspx
- document.location 显示为 http://www.foobar.com/rewrittenPath/index.aspx
- 地址栏中的 URL 与我最初输入的 URL 保持不变。

但是,当我启用 cookieless session 时,事情就出错了。我的脚本输出以下值:
- Request.Url 显示为 http://www.foobar.com/actualPath/index.aspx
- Request.RawUrl 显示为/actualPath/index.aspx
- document.location 显示为 http://www.foobar.com/actualPath/index.aspx
- 地址栏中的 URL 不知何故被更改,因此显示为:
http://www.foobar.com/(S(SESSIONID))/actualPath/index.aspx

但这很奇怪——页面的 OnLoad 事件只触发一次。那么这里发生了什么? .NET 是否在执行页面重定向,但在 OnLoad 事件有机会触发之前执行它?

我想做的是将 rewrittenPath 保留在地址栏中。我希望 document.location 返回重写路径。我希望 Request.RawUrl 返回重写路径。这可能与 cookieless session 吗?或者 .NET 的 cookieless session 机制是否使这种行为变得不可能?

感谢您的时间和帮助。

最佳答案

无 Cookie session 只是将 session ID 放在 URL 中,而不是放入 session cookie 中。因此,您的 URLRewriter.NET 的 URL 映射需要考虑这种行为。你在做这个吗?如果您希望能够在有或没有 cookie 的情况下运行,我希望您有规则来匹配 cookie 和无 cookie 的 URL 模式。

关于.net - .NET 中的 URL 重写在无 cookie session 中表现不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1174730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com