我应该以说我对.Net和Web开发总体而言是个新手作为开头-可能有一个非常简单的解决方案,对于这篇文章中包含的所有问题,我深表歉意。
基本上,我想做的是要求用户登录由站点管理员为他们创建的帐户-仅是电子邮件和密码。从那里开始,我希望这些用户能够执行一些步骤,以使用一些信息填充SQL数据库,并将数据库中的信息链接到用户以允许将来访问(我的计划是使用关系型数据库DB)
我尝试通过Blazor开箱即用的身份验证来实现此目的,但是遇到了两个问题:
我的第一个问题是无法将用户重定向到Identity提供的登录页面-理想情况下,该登录页面将是Blazor组件而不是剃须刀页面,因此该页面具有统一的布局,但是,这没有为我工作-在重定向到登录页面之前,重定向到登录页面会导致网站首页出现尴尬的闪烁。
我的第二个问题是试图将身份用户ID用作路由管理器的参数,因为它给我带来了一些错误,以及一个很长的字符串,使我相信ID可能已被加密? (我对了解此身份验证系统中发生的事情感到不知所措)
所有这些使我认为创建自己的身份验证与Blazor组件UI更好地工作会更简单(尽管我绝对可以做到这一点),因为它是内部使用的应用程序&实际上,不需要身份验证提供的很多东西(两因素,锁定,其他所有东西)。但是,我不确定从哪里开始,因为简单地创建数据库表就好像是不安全的,而且我确实需要服务器管理员的授权功能才能创建新的用户帐户等。
我想毕竟是问题,我应该继续尝试使用身份验证来使其与我正在做的事情配合吗?还是应该尝试创建自己的身份验证形式?
答案 0 :(得分:0)
我要说的是学习使用Identity Server。您应该让专家自己进行身份验证,否则您的数据将成为暗网中的下一组数据。
您正在谈论的长字符串我怀疑是用户的ID。它是一个GUID或UUID,具体取决于您的学校教育。
我不确定您是否了解您的解决方案有两个UI。 服务器正在管理所有的身份管理屏幕,这些屏幕可以被覆盖,但是这些不是您的Blazor应用程序,在它们之间切换将是您提到的“尴尬的闪光”。
您可以自定义这些屏幕的其他属性,关于它的文章很多。您可以通过API创建用于部分更新的DTO,这样可以使用户在应用程序中的体验更多。