我应该避免使用内置的ASP.NET身份机制吗?

时间:2019-02-01 12:59:02

标签: c# asp.net-core asp.net-core-identity

我正在尝试创建一个能够创建具有广泛权限的用户帐户的应用程序。我目前正在使用内置的ASP.NET Core身份系统,但是遇到了一些我找不到或没有干净解决方案的问题,稍后将在后面解释。这使我开始考虑创建适合自己需求的自定义身份机制。

我面临的问题是:

  • 我正在使用MySQL作为数据库提供程序,并在创建数据库表时 被抛出以下异常“指定的密钥太长:最大 密钥长度为3072字节”。 覆盖 OnModelCreating 方法并手动更改 使用以下代码 HasMaxLength

    modelBuilder.Entity ()。Property(ul => ul.LoginProvider).HasMaxLength(36);

    虽然不漂亮,但可以完成工作。

  • 我希望我的用户能够添加多封电子邮件多封电子邮件 电话号码。内置的ASP.NET Core身份 在用户表中创建电子邮件和电话号码列。我知道 我可以阻止它创建那些列,但是我真的不知道 相信这是正确的解决方案。基本上我需要的是 与用户表相关的表,该表将存储用户的电子邮件 并按照相同的模式输入电话号码。
  • 我的应用程序将能够创建动态字段,并且 还可以为其用户提供与以下内容相关的权限 这些字段(例如CanSee,CanEdit,CanDelete)。在角色内置 授权系统不符合我的要求,我已经看到 内置的Claims授权系统引起了很多嗡嗡声。一世 实际已经阅读到授权系统的实施 非常接近我所需要的是非常复杂和艰辛的 维护!

我的问题是,即使遇到此类问题,我是否仍应使用内置的ASP.Net核心标识系统来实现我的目标?对于我不知道的问题,有什么解决方案可以使我在使用ASP.Net核心标识系统时生活更加轻松吗?我应该创建自己的身份系统,如果是这样,那么这样的系统将有多困难和潜在危险?

1 个答案:

答案 0 :(得分:0)

您应该使用ASP.NET Identity并对其进行自定义。

您应将声明视为权限。索赔是基于其授权过滤器的基础。