authentication - 创建自定义基于用户的身份验证以用于 Blazor 服务器与身份身份验证
问题描述
我应该先说我对 .Net 和一般的 Web 开发非常陌生——这可能有一个非常简单的解决方案,我提前为这篇文章中包含的所有杂乱无章道歉。
本质上,我想要做的是要求用户登录到由站点管理员为他们创建的帐户 - 只需一个电子邮件和密码。从那里,我希望这些用户能够通过几个步骤来使用一些信息填充 SQL 数据库,并将数据库中的信息链接到用户以允许将来访问(我的计划是使用关系D B)
我试图通过 Blazor 开箱即用的身份验证来实现这一点,但是我遇到了几个问题:
我的第一个问题是无法将用户重定向到 Identity 提供的登录页面 - 理想情况下,此登录页面将是 Blazor 组件而不是 razor 页面,因此该页面将具有统一的布局,但是,这对我不起作用- 在重定向到登录页面之前,重定向到登录页面会导致网站主页出现尴尬的闪现。
我的第二个问题是尝试使用身份用户 ID 作为路由管理器的参数,因为它给我提供了一些错误,以及一个很长的字符串,让我相信 ID 可能被加密?(我无法理解这个身份验证系统中发生了什么)
所有这一切让我认为创建自己的身份验证会更简单,它可以更好地与 Blazor 组件 UI 一起使用(尽管我肯定可以不这样做),因为它是一个供内部使用的应用程序,我真的不'不需要身份验证提供的很多东西(双因素,锁定,所有其他东西)。但是,我不确定从哪里开始,因为简单地创建数据库表感觉好像不安全,而且我确实需要服务器管理员的授权功能来创建新的用户帐户等。
我想毕竟问题是,我应该继续尝试使用身份验证以使其与我正在做的事情合作,还是应该尝试创建自己的身份验证形式?
解决方案
我要说的是学习使用身份服务器。滚动您自己的身份验证是您应该留给专家的事情,否则您的数据将成为暗网上的下一组可用数据。
我怀疑您所说的长字符串是用户的 ID。它是 GUID 或 UUID,具体取决于您的学校教育。
我不确定您是否了解您的解决方案有两个 UI。服务器正在管理所有身份管理屏幕,它们可以被覆盖,但这些不是你的 Blazor 应用程序,在它们之间切换将是你提到的“尴尬的闪存”。
您可以为其他属性自定义这些屏幕,有很多关于此的帖子。您可以通过 API 创建用于部分更新的 DTO,这将更多地保持应用程序中的用户体验。
推荐阅读
- python - python svg 使用 minidom/etree/lxml 解析
- gitignore - 我可以 gitignore Katalon Studio 设置/内部文件夹吗?
- angular - 从角度的子节点路由到另一个根节点的正确方法是什么?
- css - ::ng-deep 将组件中的元素覆盖到另一个组件
- angular - 如何将指令作为参数传递给角度函数
- c# - 在我的 c# 项目中使用accord.net 进行签名验证
- vba - 访问删除表记录vba
- python - 使用 cython 编译后,具有多处理功能的 python 函数无法运行
- java - 如何在不下载的情况下在 GridView 中显示来自 URL 的图像?
- html - 样式输入为什么属性会改变行为?