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

问题描述 投票:0回答:1

我试图创建具有创建具有广泛权限的用户帐户的功能的应用程序。我目前使用内置的ASP.NET核心识别系统,但我碰到一些问题,我没有找到任何或者没有找到任何清洁的解决方案,这将得到在后后面解释。这不得不让我想创建自己的定制身份的机制,将适合我的需要的。

我现在面临的问题是:

  • 我使用MySQL作为我的数据库供应商,在创建数据库表我被抛出以下异常“指定的关键是太长:最大密钥长度为3072个字节”。我设法通过使用下面的代码重写OnModelCreating方法和手动更改HasMaxLength值来解决这个问题 。modelBuilder.Entity <IdentityUserLogin>()属性(UL => ul.LoginProvider).HasMaxLength(36); 这不是漂亮,但它能够完成任务。
  • 我希望我的用户能够将多个电子邮件和多个电话号码添加到他们的帐户。内置的ASP.NET核心身份创建一个电子邮件,并在用户表中的电话号码列。我知道我可以阻止它创造的那些列,但我真的不相信这是正确的解决方案。基本上我需要的是有与将存储用户的电子邮件和一个千篇一律的电话号码的用户表的表。
  • 我的应用程序将能够建立动态字段的功能,也将不得不放弃它的用户与这些领域(例如:能够看见的,CanEdit,CanDelete)权限的能力。在角色授权系统内置不符合我的要求,我已经看到了很多周围内置要求授权系统的嗡嗡声。其实我已阅读,授权制度的实施,这是非常接近我需要的是非常复杂,非常难以维持!

我的问题是,我应该使用内置在ASP.Net核心身份系统,以实现自己的目标,即使我对着这样的问题?在那里我的问题,我不知道,并会令我的生活更轻松,同时使用ASP.Net核心识别系统中的任何解决方案?我要创造我自己的身份制度,如果有的话,是多么困难和潜在危险的这样一个系统会是什么?

c# asp.net-core asp.net-core-identity
1个回答
0
投票

您应该使用ASP.NET身份和定制。

你应该把权利要求的权限。索赔是他们的基地,授权过滤器。

© www.soinside.com 2019 - 2024. All rights reserved.