gpt4 book ai didi

c# - 用于网站和 cms 身份验证的 .net 核心用户身份

转载 作者:行者123 更新时间:2023-12-04 10:07:48 25 4
gpt4 key购买 nike

支持网站(客户)用户的用户帐户注册和登录以及在同一项目中为站点和 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 和用户/帐户的网站。

所以我的问题是这两个在同一个项目中看起来不太好,我想知道在这种情况下最好的做法是支持同时使用用户身份和/或者在这种情况下这甚至可能吗?

最佳答案

Piranha 中的用户管理是完全抽象的,因此您实际上可以以任何您想要的方式对 CMS 用户进行身份验证。模板中包含的 Identity 包作为样板包含在内,因为大多数用户基于 ASP.NET Identity 的单一安全设置。经理在登录时唯一关心的是:

  • 它找到了实现 Piranha.ISecurity 的注册服务( https://github.com/PiranhaCMS/piranha.core/blob/master/core/Piranha/ISecurity.cs )
  • 用户在登录后获得所需的足够声明 ( https://piranhacms.org/docs/architecture/authentication )

  • 配置身份

    模板中提供的代码仅设置标准身份设置,但您可以覆盖所有内容以执行您喜欢的操作。方法 UseIdentityWithSeed<T>实际上可以多带两个参数来配置 IdentityOptionsCookieOptions以任何方式工作。看看这个页面以供引用:

    https://piranhacms.org/docs/architecture/authentication/identity

    食人鱼中的用户帐户

    如果您只想在某处添加最终用户帐户,则可以在 Piranha CMS 中通过在管理员中设置新角色并添加所需的应用程序策略来完成。你可以在这里阅读:

    https://piranhacms.org/docs/tutorials/securing-pages

    有关多种身份验证方案的更多指南

    我从未实际部署过具有此设置的站点, 但是 和往常一样,我知道有人有 :) GitHub 上的这个问题只讨论了这一点,并且设置成功。由于我无法针对这种情况提供具体指导,因此在此线程中与用户联系可能会为您提供所需的信息!

    https://github.com/PiranhaCMS/piranha.core/issues/627

    虽然不是 回答 ,我希望这会给你找到答案所需的东西。

    此致

    关于c# - 用于网站和 cms 身份验证的 .net 核心用户身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61486742/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com