两个MVC项目,共享登录,不应该

时间:2016-04-24 00:51:10

标签: asp.net-mvc asp.net-membership

我有一个MVC5项目(与其他基础项目一起),使用Web窗体身份验证(SimpleMembership)。

后来,我在同一个解决方案中创建了第二个MVC项目。我将IISExpress调试的端口更改为与原始端口不同,因此我可以在调试时访问这两个站点。

http://localhost:12345/MainAppIndex
http://localhost:54321/SecondaryAppIndex

然而,我当前的登录信息在两个项目之间共享。如果我登录第一个站点并打开第二个站点,它将使用我的第一个登录凭据。

我确实通过复制第一个项目,围绕.csproj文件和解决方案文件调整了第二个应用程序,然后剥离了一堆东西,从我需要的东西开始。 (我还创建了一个新的aspnet成员资格数据库并将新项目指向该数据库,因此这两个应用程序都有自己的成员资格数据库。)

我必须更改哪些设置才能将IIS Express视为两个不同的登录信息?

并且......如果用户碰巧同时查看两者(或者甚至只在一次打开时来回交换,这将是生产中的问题吗?)

2 个答案:

答案 0 :(得分:1)

原来这是一个cookie问题。通过更改web.config以设置非默认Cookie名称(显然默认为.ASPXAUTH),它们将被视为单独的登录。

<system.web>
    <authentication mode="Forms">
      <forms name=".ASPXAUTH-PROVIDERS" loginUrl="~/Account/Login" timeout="2880" />
    </authentication>
</system.web>

答案 1 :(得分:0)

您需要使用其他数据库,否则2个应用程序将继续使用相同的数据库。

为了做到这一点,请转到Web.Config(在根目录下)并使用其他连接字符串。

然后转到模型 - &gt; IdentityModels.cs并将Connection字符串的名称更改为新的连接字符串。