gpt4 book ai didi

asp.net-mvc - Simplemembership ASPXAUTH cookie 在两个单独的 Web 项目上验证

转载 作者:行者123 更新时间:2023-12-04 11:40:30 24 4
gpt4 key购买 nike

我正在使用 SimpleMembership 处理一个 ASP.NET MVC4 项目,它会在您登录时生成一个 ASPXAUTH cookie。它似乎工作得很好,但是今天我打开了另一个 MVC4 项目,却发现我已经登录了在。

这非常奇怪,因为新项目实际上没有在数据库中定义任何用户。更令人不安的是,当我在新项目上点击“退出”时,它使我退出了原始站点。

两个站点都在不同的端口上运行,但都在本地主机上。在检查请求以查看它为什么返回“IsAuthenticated == true”时,我注意到 ASPXAUTH cookie 被发送到两个站点,并且调试器中 cookie 的“域”参数为“空”。这让我觉得 cookie 可能是作为“无域”cookie 生成的(老实说,我不知道这样的事情是否可能!),并查看了 web.config 设置以指定域:

<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" domain="http://localhost:56626" />
</authentication>

不幸的是,设置“域”参数使 cookie 停止工作。我已经尝试了所有排列(使用 http、不使用 http、使用端口、不使用端口等),每次指定域时,浏览器都会收到带有正确指定域名的 cookie(我在 Chrome 开发人员工具中检查了它),但随后无法将其发送回后续请求的服务器。

所以,我对这里发生的事情感到非常困惑。这是由于我没有在某处正确设置某些东西而导致的安全泄漏吗?或者 ASPXAUTH cookie 会在同一域的两个不同端口上的两个完全不同的 Web 应用程序上授权用户,这是否是完全正常的行为?我会在网络主机上测试这个,但不幸的是我目前无法访问任何运行 MVC4 的。

提前致谢。

最佳答案

ASPXAUTH 是 cookie 的默认名称,但通过为 Web.Config 中的每个项目更改此名称,您可以使其仅应用于该项目。

<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" domain="http://localhost:56626" name=".PROJ1AUTH"/>
</authentication>

关于asp.net-mvc - Simplemembership ASPXAUTH cookie 在两个单独的 Web 项目上验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116639/

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