尝试使用数据库优先方法来围绕“定制身份”表

时间:2019-04-15 19:55:26

标签: asp.net-core identity

我的整个团队都是ASP.Net Core的新手,我是负责身份验证/授权的幸运者。我们一直使用数据库优先方法,这没什么不同,我们已经设置了所有数据库。高层人士希望将我们的特定表用于Identity的所有内容,但他们也希望利用ASP.Net Core提供的工具。

这将是一个具有一个中央数据库的多站点应用程序。我们当前的设置接近脚手架添加的内容,但有一些细微的差异。

我已经阅读了大量的资源,但是绝大多数人都专注于代码优先方法,而我目前还不完全了解我需要什么以及代码优先方法所需要的内容。我看到了几个建议使用OnModelCreate内的.ToTable和.Property的答案。这是最佳选择,还是我最好自己创建商店和方法?我目前已经创建了一个用户模型,并创建了一个商店(基于this site)。对我来说,最好是一路扩展(不完全了解如何发挥作用和主张)。

这是我们的数据库架构当前的外观。 enter image description here

目前,我们正在通过db脚本创建角色和声明。现在,我们唯一会使用UI的页面是一个页面,该页面将允许站点管理员添加用户,并为他们分配角色以及他们需要的任何单数声明。

任何帮助或建议,我都将全力以赴,不胜感激。如果我遗漏了任何相关信息,请告诉我。就像我现在说的那样,我可以创建一个用户并登录,我只是不知道从哪里可以找到(如何添加角色和声明)。

1 个答案:

答案 0 :(得分:0)

这是我的想法以及解决该问题的步骤。

因此,Microsoft的Identity实施是问题的抽象。

他们提供的模型以及从中衍生的表是抽象的默认实现的选择。

因此,基本上,您要做的就是将模型插入此抽象中。

要从数据库中快速生成这些模型,您可能需要使用scaffolding,这将生成DbContext和模型,然后必须配置dbcontext才能插入设计。

如果您研究如何创建自己的标识表以提供自己的对象 here这可以使您了解如何将模型/函数插入该抽象。

您很可能必须重写OnModelCreating方法来配置表之间的关系。