【发布时间】:2020-08-12 15:39:52
【问题描述】:
在支持网站(客户)用户的用户帐户注册和登录以及在同一项目中为站点和 cms 使用单独的用户身份服务支持 cms 用户帐户/管理员登录的最佳做法是什么?
为了评估这种情况的工作方式,我已经构建了一个测试 mvc .net core 3.1 网站项目,该项目利用 Piranha CMS 反过来使用用户身份服务来管理访问 cms 管理面板的身份验证,结合这个使用 mvc 网站还支持个人帐户的用户身份,以便网站客户/用户注册/登录。
以下是启动类 ConfigureServices 方法的示例,用于说明使用用户身份服务设置 cms 和网站,这目前在启动时出错并显示一条消息 - System.InvalidOperationException: 'Scheme already exists: Identity.Application '
// CMS Setup
services.AddPiranha(options =>
{
options.UseFileStorage();
options.UseImageSharp();
options.UseManager();
options.UseTinyMCE();
options.UseMemoryCache();
options.UseEF<SQLServerDb>(db => db.UseSqlServer(Configuration.GetConnectionString("db-cms-users")));
options.UseIdentityWithSeed<IdentitySQLServerDb>(db => db.UseSqlServer(Configuration.GetConnectionString("db-cms-users")));
});
// Site Setup
services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("db-site-users")));
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true).AddEntityFrameworkStores<ApplicationDbContext>();
上述代码的问题是cms和站点都使用用户身份,并且由于两者都使用“默认”身份而发生冲突,有没有办法解决这个问题并且仍然支持两者用户/帐户的 cms 和网站。
所以我的问题是这两者在同一个项目中看起来不太好,我想知道在这种情况下,支持使用用户支持的 cms 和站点的 web 项目的最佳做法是什么身份和/或在这种情况下这是否可能?
【问题讨论】:
标签: c# .net-core claims-based-identity piranha-cms