gpt4 book ai didi

asp.net - IE 和 ASP.NET 的 IPv6 范围 ID 问题

转载 作者:行者123 更新时间:2023-12-01 22:26:30 24 4
gpt4 key购买 nike

设置:

Two W2K3 machines in domain with IPv6 installed on both. App is on Machine #1.

什么适用于 IE8:

Machine #2 can log into the app using IPv4 address (http://192.168.../app)
Machine #2 can log into the app using machine name (http://machine1name/app) Machine #1 can log into the app using IPv4 address, machine name, and localhost. Machine #1 can log into the app using local IPv6 address (without scope-id).
Machine #1 can log into the app using network IPv6 address (without scope-id).

什么不适用于 IE8,适用于 Firefox:

Machine #2 can't log into the app using network IPv6 address of Machine #1 (with scope-id).

原始问题:我已尝试缩小问题范围。我可以打开登录页面并输入我的凭据。在代码中,我检查 Active Directory 进行身份验证,并且用户确实获得了身份验证。但是,HttpContext.Current.User.Identity 从未设置。它应该在我调用 RedirectFromLoginPage(username) 时设置,并且是在 Machine #2 使用 IPv4 访问应用程序时设置。但是,当我使用 IPv6 地址时,HttpContext.Current.User.Identity 始终为空。

使用 IPv4 时身份验证和应用程序工作正常,所以我不认为这是代码问题,但不确定?或者我需要调整一些网络/IE 设置吗?

编辑:使用 IPv6 的 Firefox 和使用 IPv4 的 IE8 在创建身份验证 cookie 时没有问题。由于某种原因,带有 IPv6 的 IE8 无法创建 cookie,因此,RedirectFromLoginPage 出现了问题,它应该创建 cookie。

编辑 2:问题似乎是使用 IE 时 IPv6 地址中的 % [即。范围 ID]。例如,使用 Firefox,您可以在地址中包含 % ,没有问题。使用 IE,如果您使用 IPv6(无论是本地 IP 还是网络 IP)本地访问应用程序,则可以省略作用域 ID。但是,当访问网络计算机上的应用程序时,您需要范围 ID。自从您必须使用 %25% 进行编码,这就是问题所在。

[ps.我知道this question有类似的标题,但不是同一个问题。]

最佳答案

老实说,解决此问题的最佳方法是不要使用链接本地地址作为 Web 端点。正如您所发现的,IPv6 的这个区域定义不明确。

我建议改用静态 IPv6 地址。或者让您的网络管理员(您?)在您的子网上启用 IPv6 路由器通告,以便您可以获得“真实”(链接本地)IPv6 地址。

请注意,您仍然可以使用“私有(private)”IPv6 空间(就像使用 192.168.0.0/16 IPv4 地址一样)

如果您没有“真正的”IPv6 子网,则可以使用编号为 6to4 的/64 子网。 (如果您有一个真正的 IPv4 地址并且您[最终]希望您的主机参与“真正的”IPv6 互联网,这可能会很好)或获取 unique local要使用的子网。

或者只是去尝试并从像 Hurricane Electric 这样的地方代理一条 6in4 隧道。 .

关于asp.net - IE 和 ASP.NET 的 IPv6 范围 ID 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4649115/

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