Cookie是否在同一主机上的两个应用程序之间共享

时间:2014-10-17 05:04:49

标签: asp.net asp.net-mvc cookies iis-7.5

我的机器上托管了两个应用程序,其网址如下所示。

" // mymachine上:PORT1 /申请"
" // mymachine上:端口2 / APP2"

App1和app2都使用相同的登录凭据。我的问题是,当用户退出App2时,app1似乎也会被注销并重定向到登录页面。 IIS中是否存在某些设置,以便App2中的注销不会影响App1。

3 个答案:

答案 0 :(得分:2)

浏览器存储基于名称和路径的Cookie,如果您注意 firebug 的Cookie标签,则会看到< strong> localhost 存储在 localhost域名中。所以两个应用程序有相同的cookie。但您可以将应用程序cookie存储在不同的路径上。

Response.Cookies.Add(new HttpCookie("Data")
{
    Value = "....",
    Path = "/app1"
});

Response.Cookies.Add(new HttpCookie("Data")
{
    Value = "....",
    Path = "/app2"
});

localhost:2000 localhost:2001

答案 1 :(得分:0)

如果您在应用程序中使用会话进行登录,则问题将得到解决

例如将会话创建为

session["email"] = emailtextbox.text

在应用程序中创建它并在每个表单中检查会话

答案 2 :(得分:0)

最后通过设置表单身份验证cookie的不同路径来解决问题。

在app1中设置为

<authentication mode="Forms">
      <forms loginUrl="~/MyController/MyAction" timeout="60" path="/"/>
    </authentication>

在app2中设置为

<authentication mode="Forms">
      <forms loginUrl="~/MyController/MyAction" timeout="60" path="/SomeOtherPath"/>
    </authentication>