1

想象一下,当您创建一个新的 MVC4 项目并开始使用复选框注册帐户SimpleMembership并登录时。Remember Me

现在,当您创建另一个 MVC 4 项目时,应用程序尝试使用以前的帐户登录,但由于它不存在而引发错误。我的意思是,如果一个人在一个网页上登录,另一个人使用相同的帐户。

如何避免这种情况,我想必须使用 ForgeryTokens 或类似的东西

4

3 回答 3

1

自定义 cookie 的名称,使其在每个应用程序中都是唯一的。

<authentication mode="Forms">
    <!-- **Defaults** timeout="30" slidingExpiration="true" -->
    <forms name=".MyApplication" defaultUrl="~/" loginUrl="~/LogIn"  />
</authentication>
于 2013-05-21T22:56:49.143 回答
0

发生这种情况是因为在提供网页时,浏览器将 localhost 视为域名。它为 localhost 保存 cookie。

当您使用 localhost 在同一服务器上托管另一个网站时,浏览器会再次发送相同的 cookie。

如果您在两个应用程序中使用相同的 cookie 名称,那么系统将尝试认为用户已通过身份验证,您将收到错误消息。

您可以在 web.config 文件中更改 cookie 名称。

读这个:

我可以更改 FormsAuthentication cookie 名称吗?

于 2013-05-22T01:35:20.303 回答
0

如果您使用的是单点登录机制,那么这是一个例外情况,但如果您不希望使用同一帐户对另一个网站进行相同的身份验证,请确保两个项目的 web.config 文件必须具有不同的机器密钥。

此外,这是因为您机器上的 cookie 设置为 true,以创建 cookie 文件并允许使用此 cookie 详细信息访问其他项目。

< 认证 />

于 2013-05-22T01:09:41.023 回答