5

我在 asp.net 身份中有一个我无法理解的问题

应用以下步骤

  1. 创建两个空的 Web 项目,它们有名称:
    • Web应用程序1
    • Web应用程序2
  2. 在每个项目上安装包“ Microsoft ASP.NET Identity Samples 2.0.0-beta2 ”
  3. 创建两个sql数据库,名称如下:
    • 网络数据库1
    • 网络数据库2
  4. 在WebApplication1中添加用户名为“ User1
  5. 在WebApplication2中添加用户名为“ User2
  6. 同时运行两个项目。

我的问题是当我在“ WebApplication1 ”中通过“ User1 ”登录时

我发现WebApplication2使用User1记录。

尽管每个项目都有单独的数据库。

而且WebApplication2中也没有 User1

有什么问题?

原谅我的英语不好!

4

1 回答 1

7

当用户登录站点时,auth 中间件将登录的用户信息(包括 id、name 和角色)序列化为加密的 auth cookie。在随后的访问中,框架只需解密并读取该信息,而无需访问数据库。

默认情况下,跨 ASP.NET 应用程序使用相同的 cookie 名称。您所看到的是 WebApp1 设置 cookie,而 WebApp2 正在读取它。这是因为它们在同一个域(或本地主机)上,并且 cookie 在同一个域上的资源之间共享。

尝试更改应用程序中的 cookie 名称...

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    // ...
    CookieName = "WebApp1AuthCookie"
});
于 2014-04-12T23:14:14.637 回答