目前,我们正在开发两个网站,但它们共享一个数据库,这两个网站都使用身份进行用户管理,例如登录、帐户设置等。
网站A和网站B的身份用户实体定义如下
public class UserA : IdentityUser
{
...
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<UserA > manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
public class UserB : IdentityUser
{
...
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<UserB > manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
UserA和UserB实体映射到数据库中的不同表。
问题如下
-
在同一浏览器中启动网站A和B
-
登录网站B--没问题
-
登录网站A--没问题
-
刷新网站B的索引页,用户名显示登录网站A的用户名错误,用户名在cshtml中获取如下:
<div>@User.Identity.Name</div>
有什么想法吗?或者我需要提供一些更详细的信息吗?