gpt4 book ai didi

c# - 跨站、同域cookie混淆

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

我有一个站点是在 asp.net 中完成的。另一个较新的站点是在 asp.net MVC、LINQ 和 Razor 中完成的。

当我访问旧站点 oldsite/default?userid=243 时,这会设置 cookie 和 session 变量。当我访问新站点 oldsite:88 时,我打开了我的 cookie 查看器,它显示 cookie 仍然设置。

我现在正尝试通过写出 cookie 的值在新站点上对此进行测试。

我试过这段代码:

@{ 
if (!(Request.Cookies["UserID"].Value == ""))
{
<span>Cookie: @Request.Cookies["UserID"].Value</span>
}
if (!(Session["UserID"].ToString() == ""))
{
<span>Session: @Session["UserID"].ToString()</span>
}
}

但是页面出错并且页面是实时的(因为我不能使用我的本地主机,因为域会不同,因此 cookie 不会传输。

如果这个 cookie 不存在,我如何告诉我新网站继续前进。否则,如果它确实存在,则写出它的值。我现在运气不太好。

我需要检查它是否存在的原因是不是每个人都会通过旧站点使用新站点。有些人只是访问新站点,因此根本不需要或不需要 cookie。

最佳答案

检查是否为空。您收到错误是因为您试图读取不存在的 cookie 的 Value 属性。您可能会看到 NullReferenceException

@{ 
if (Request.Cookies["UserID"] != null)
{
<span>Cookie: @Request.Cookies["UserID"].Value</span>
}
}

顺便说一句,要设置您的开发环境以与另一个环境共享 cookie,请修改您的主机文件并映射您域的子目录:

c:\windows\system32\drivers\etc\hosts

127.0.0.1 dev.mydomain.com

并在您的本地 IIS 中添加到该域的绑定(bind)。

现在,当您浏览到 dev.mydomain.com 时,您将加载本地主机站点,但具有子域的安全限制,这意味着您可以共享 cookie。

关于c# - 跨站、同域cookie混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432116/

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