gpt4 book ai didi

c# - 重定向到登录页面时,如何使 ASP.NET 身份验证保留 Url 片段?

转载 作者:太空宇宙 更新时间:2023-11-03 18:00:09 26 4
gpt4 key购买 nike

在我将下面的配置插入我的 Web.Config 之后

<authentication mode="Forms">
<forms name="appNameAuth"
path="/" loginUrl="login.aspx" protection="All" timeout="30">
<credentials passwordFormat="Clear">
<user name="user" password="password" />
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>

所有请求

Menu.aspx#fragment

被重定向到

login.aspx?ReturnUrl=/Menu.aspx

我希望它被重定向到

login.aspx?ReturnUrl=/Menu.aspx#fragment

如何实现预期的行为?

最佳答案

#fragment anchor 标记是 URL 的客户端(浏览器)组件。据我所知,它不会发送到 WebServer,因此作为重定向的一部分,服务器端不知道它。

编辑

您能否检查您的 IIS 日志并确认这一点,因为我 99% 确定情况并非如此。

来 self 本地机器上的快速测试。

  1. 尝试浏览到

    http://localhost/formstest/private.aspx#test

  2. 获得重定向

    http://localhost/formstest/login.aspx?redirect=http%3a%2f%2flocahost%2fformstest%2fprivate.aspx#test

    (注意 # 没有作为重定向 url 的一部分进行转义。

  3. 首先检查 IIS。

    2010-04-12 13:36:45 W3SVCxxx 127.0.0.1 GET/formstest/private.aspx 80 - 详细信息已删除 - 302 0 0

    (注意 302 重定向和 URL 上缺少 #test 标记

  4. 检查 IIS 是否有重定向命中。

    2010-04-12 13:36:46 W3SVCxxx 127.0.0.1 GET/formstest/login.aspx redirect=http%3a%2f%2flocahost%2fformstest%2fprivate.aspx 80 - 详细信息已删除 - 200 0 0

    (有你的 200 OK HTTP 响应,但仍然没有 #test

正如我所说,服务器对#anchor 一无所知。它只在客户端,无论您是在发出请求之前还是之后将其放入,或者您是否使用 JQuery 对其进行更新...它都不会转到服务器。

关于c# - 重定向到登录页面时,如何使 ASP.NET 身份验证保留 Url 片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2610531/

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