【发布时间】:2019-10-30 07:01:36
【问题描述】:
经过大量阅读和反复试验,我的目标设计工作了:
- IdentityServer4(独立于 AspNetIdentity)和 IdentityUser 数据库
- MVC 客户端(独立),这是用户的前端,目前没有数据库链接
- 1-n 个 WebAPI,为 MVC 客户端提供功能并拥有自己的数据库
目前我使用现有的 IdentityUser 数据库并将 IS4 指向该数据库,手动添加角色和声明以进行测试。
我的问题是关于注册新用户的最佳做法。
由于 MVC 客户端是用户的前端,因此此处应显示用户注册的链接。
但是从技术上讲,注册是在哪里完成的?
- 我应该在 MVC 客户端中执行此操作(使用默认的 IdentityUser 注册)并将数据库指向 IS4 数据库还是
- 我是否应该在 IS4 应用程序中添加一个注册函数以使 MVC 客户端不依赖任何数据库,并将 MVC 客户端“注册”链接指向此 IS4 注册函数?
【问题讨论】:
-
如果您指的是与用户帐户和传统
AccountController相关的所有内容,即注册、更改密码、锁定/解锁/删除 在 Usermanagement 下,那么@VidmantasBlazevicius 的回答就足够了,Identityserver 是一致性原因的最佳位置。但是,如果您的意思是访问控制,那么请查看@Ruard 的答案并将这些内容放入一个新 应用程序中,而不是您已经拥有的用于业务需求的应用程序。 -
对控制器的访问控制和客户端对 API 的访问已经用 IS4 实现了。这实际上只是关于将用户注册放在何处的最佳实践。
-
因此您将第二个答案标记为最适合您的问题,现在您说您的实施与已证明的建议完全相反。你真奇怪,但这就是你的选择:)
-
我不想在这里大讨论。我写的身份验证和授权已经 用 IS4 实现了。这意味着 MVC 客户端和 WebAPI 中的 [Authorize] 属性按预期工作 - 具有 IS4 功能。我的问题纯粹是关于 哪里 user REGISTRATION 应该被实施。并且我在标记的答案中得到了合适的答案,将注册放入IS4应用程序中。
标签: asp.net-mvc .net-core identityserver4