.Net 5.0.中身份和角色的真实使用



我对.Net环境中的编码相当陌生。我很难找到";"真实世界";使用Identity进行身份验证/授权的示例。我遇到的大多数示例主要是使用ASP.Net注册模板的教科书示例。

我正在努力寻找在哪里查找的指导(是的,我在谷歌上搜索了一下,得到了非常不现实/不可用的用例或"课堂"示例(或如何做到这一点。

我在一所小学校工作,我正在尝试构建一个应用程序(可能是Blazor,现在只是在尝试各种技术(,允许学生和员工登录门户网站并查看他们的相关数据。我有一个基于POCO类的Employee表和一个Student表。当我将标识添加到项目中时,它还会创建"用户"one_answers"角色"表。

我想要";用户";表-没有单独的用户表。我不想有一个";注册";选项。我希望管理员(属于"员工"(能够添加用户,但不能使用注册页面。

如果不使用添加的所有附加功能,我将如何实现身份和角色?我正在使用.Net 5.0。

谢谢你抽出时间,请原谅英国人——这对我来说也是新的。

我理解你想做什么。创建自定义AuthenticationStateProvider 是可能的

但除非你已经有了一个非常强大的数据库,否则我不会这么做。设置默认系统和迁移用户最多需要一个小时。建立自己的自定义授权系统可能需要更长的时间。

在不同的表中拥有不同的用户不是一个好的设计计划。他们都有名字、电话号码、电子邮件等等——把它们放在一张桌子上

嗨,Derrick,欢迎来到社区@Bennyboy1973是正确的,因为你的学生和员工都是";用户";,所以它们都应该存储在同一个表中。为了增加一点回应,对你来说,管理他们最简单的方法可能是使用角色,这样学生可以扮演一个角色,员工可以扮演另一个角色。通过为每种类型附加一个角色,您可以在查询中使用这些角色作为过滤器,还可以根据它们所处的角色限制每种类型的访问权限和操作。

关于让管理员在没有公共访问权限的情况下将用户添加到数据库,这也是可以做到的。一旦你启动并运行了默认身份系统,你就可以构建整个系统,以便对其进行修改,而实现你所追求的目标的最简单方法可能是修改默认注册(注册(页面,使其需要通过身份验证才能访问,然后实现一封确认电子邮件来激活每个新帐户。

这种方法也需要注意一些事情。

  1. 由于管理员将设置所有其他用户帐户,您应该修改电子邮件确认链,以便在某个时候需要重置密码。管理员可以根据需要访问用户的信息,但不应该拥有用户的密码。

  2. Identity Server将以加密格式存储密码,并且您的数据库中需要一个初始用户。这意味着你将不得不";种子";数据库中的初始管理员用户,您可以使用该用户登录并开始其他一切。你必须研究如何做到这一点,因为它不像直接访问数据库并添加用户和角色那么简单,因为加密。您构建的程序应该在第一次运行时为您设计,或者如果您正在使用您知道的用户名和密码连接到新数据库,则应为您设计。然后,它将正确存储用户,您可以使用该用户以管理员身份登录,然后更改管理员密码。这使整个过程更加安全。

这一切听起来很头疼,但值得一试,知道这一切是如何结合在一起的。如其他答案中所述,您可以将现有数据迁移到数据库中。

相关内容

  • 没有找到相关文章

最新更新