在两个MVC项目中共享登录?为什么?

时间:2013-05-21 22:30:29

标签: c# asp.net-mvc asp.net-mvc-4

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

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

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

3 个答案:

答案 0 :(得分:1)

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

<authentication mode="Forms">
    <!-- **Defaults** timeout="30" slidingExpiration="true" -->
    <forms name=".MyApplication" defaultUrl="~/" loginUrl="~/LogIn"  />
</authentication>

答案 1 :(得分:0)

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

此外,由于您的计算机上的Cookie设置为true,创建Cookie文件并允许使用此Cookie详细信息访问其他项目,因此发生了这种情况。

&LT;身份验证/&gt;

答案 2 :(得分:0)

这是因为在提供网页时,浏览器会将localhost视为域名。它保存了localhost的cookie。

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

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

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

阅读本文:

Can I change the FormsAuthentication cookie name?