【发布时间】:2019-09-24 10:46:42
【问题描述】:
我正在创建一个 asp.net core 2.0 应用程序(带有 EFCore 一个身份),它具有:
- 人们可以注册和购买不同计划的网站 (MVC) (不同的价格等)。因此,这些用户必须确认电子邮件和 添加其他信息以便能够使用它的服务,其中包括 创建和管理移动应用用户。
- 具有 WebAPI 后端的移动应用程序。该应用程序的用户是工人 谁从一个客户到另一个客户,添加必须是 现场收集到应用程序。该信息由 网站用户。
所以,我认为有两种不同类型的用户:只有一个会使用该网站,并且需要(更多?)安全性,因为它需要确认的电子邮件,以防他忘记密码等。还有这些用户将能够看到移动应用程序收集的所有报告和(敏感)信息。此身份验证基于 cookie。
另一方面,移动应用程序用户永远无法访问除了他们自己输入的信息之外的信息,也不需要他们的电子邮件。他们只需要网站用户发布的用户名和代码/密码。而这个身份验证就是不记名令牌。
我更愿意在一个项目中完成所有这些,所以我的问题是如何在一个项目中处理这两种类型的用户(和身份验证过程)?
我阅读了有关授权方案、声明、过滤器、安全属性、配置 startup.cs 的文档。我相信如果只是角色上的不同,我可以处理这个问题。我在这里搜索的关于不同类型用户的问题似乎真的是关于角色的,但我认为不能这样处理。例如,移动应用用户不会注册自己,也不会处理密码等,所有这些都将由拥有“完整帐户”的网站用户管理。
如果被问到我可能会发布一些代码,但我真正需要的是一些指导,例如:
不要在一个项目中做,做两个,一个用于 MVC,一个用于 WEBAPI,并在每个项目中处理不同的安全/授权/注册问题;
或者:您需要创建两个不同的“AppUser”类和(在这种情况下,如何配置 Identity / 我添加到 startup.cs 的内容?)
我确实发现了这个: https://medium.com/agilix/asp-net-core-supporting-multiple-authorization-6502eb79f934
但这仍然缺少关于不同用户的部分。很可能我已经在 microsoft 文档和其他地方阅读了我需要执行此操作的信息,但我无法将它们拼凑在一起 - 例如,我知道如何在 Identity 中创建和注册自定义用户类,我了解如何将过滤器和属性添加到 MVC 管道,我认为我需要所有这些来完成我需要的,但我无法逐步理解我需要做什么。
【问题讨论】:
标签: c# asp.net-core-mvc asp.net-core-2.0 asp.net-core-webapi