我有一个问题,我无法在ASP.NET身份中理解

应用以下步骤

  1. 创建两个空的Web项目,他们有名字:
    • webapplication1
    • webApplication2
  2. 安装包“ microsoft asp.net标识样本2.0.0-beta2 ”在每个项目上
  3. 创建两个SQL数据库具有以下名称:
    • webdatabase1
    • webdatabase2
  4. 添加用户在 webapplication1
  5. 中有名称“ user1
  6. 添加用户在 webapplication2
  7. 中有名称“ user2
  8. 同时运行两个项目
  9. 我的问题是当我在“ webapplication1 ”中登录“ user1 ”时登录时

    我发现 webapplication2 user1 记录。

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

    no user1 webapplication2 中。

    是什么问题?

    请原谅我的英语不好!

有帮助吗?

解决方案

当用户签名到该站点时,auth中间件将登录的用户信息(包括ID,Name和Roles)序列化为加密的Auth Cookie。在随后的访问中,框架简单地解密并读取该信息而不击中数据库。

缺省情况下,相同的cookie名称遍布ASP.NET应用程序。你看到的发生是webapp1设置cookie,webapp2读取它。这是因为它们在同一个域(或localhost)上,并且cookie在同一域的资源中共享。

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

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    // ...
    CookieName = "WebApp1AuthCookie"
});
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top