想象一下,当您创建一个新的 MVC4 项目并开始使用复选框注册帐户SimpleMembership
并登录时。Remember Me
现在,当您创建另一个 MVC 4 项目时,应用程序尝试使用以前的帐户登录,但由于它不存在而引发错误。我的意思是,如果一个人在一个网页上登录,另一个人使用相同的帐户。
如何避免这种情况,我想必须使用 ForgeryTokens 或类似的东西
想象一下,当您创建一个新的 MVC4 项目并开始使用复选框注册帐户SimpleMembership
并登录时。Remember Me
现在,当您创建另一个 MVC 4 项目时,应用程序尝试使用以前的帐户登录,但由于它不存在而引发错误。我的意思是,如果一个人在一个网页上登录,另一个人使用相同的帐户。
如何避免这种情况,我想必须使用 ForgeryTokens 或类似的东西
自定义 cookie 的名称,使其在每个应用程序中都是唯一的。
<authentication mode="Forms">
<!-- **Defaults** timeout="30" slidingExpiration="true" -->
<forms name=".MyApplication" defaultUrl="~/" loginUrl="~/LogIn" />
</authentication>
发生这种情况是因为在提供网页时,浏览器将 localhost 视为域名。它为 localhost 保存 cookie。
当您使用 localhost 在同一服务器上托管另一个网站时,浏览器会再次发送相同的 cookie。
如果您在两个应用程序中使用相同的 cookie 名称,那么系统将尝试认为用户已通过身份验证,您将收到错误消息。
您可以在 web.config 文件中更改 cookie 名称。
读这个:
如果您使用的是单点登录机制,那么这是一个例外情况,但如果您不希望使用同一帐户对另一个网站进行相同的身份验证,请确保两个项目的 web.config 文件必须具有不同的机器密钥。
此外,这是因为您机器上的 cookie 设置为 true,以创建 cookie 文件并允许使用此 cookie 详细信息访问其他项目。
< 认证 />