首先,我要说,我对.Net和web开发非常陌生--这可能是一个非常简单的解决方案,我对这篇文章中的所有杂乱无章的内容表示歉意。
本质上,我想要做的是要求用户登录到一个由网站管理员为他们创建的帐户--仅仅是一个电子邮件和密码。从这里开始,我希望这些用户能够通过几个步骤来填充SQL数据库中的一些信息,并将数据库中的信息链接到用户以允许将来的访问(我的计划是使用关系数据库来实现这一点)。
我试图通过Blazor提供的身份验证来实现这一点,但是我遇到了几个问题:
我的第一个问题是无法将用户重定向到标识所提供的登录页面--理想情况下,这个登录页面将是Blazor组件,而不是剃须刀页面,因此页面将具有统一的布局,然而,这对我不起作用--重定向到登录页面会导致站点主页出现尴尬的闪现,然后再重定向到登录页面。
我的第二个问题是试图使用身份用户Id作为路由管理器的参数,因为它提供了一些错误,以及一个非常长的字符串,使我相信Id可能是加密的?(我无法理解这个认证系统中发生了什么)
所有这一切都让我认为,创建自己的身份验证会更简单一些,它可以更好地使用Blazor组件UI (尽管我肯定可以在这方面做得更好),因为它是一个内部使用的应用程序&我真的不需要提供很多身份验证的东西(双因素、锁定等等)。但是,我不知道从哪里开始,因为简单地创建DB表就好像它是不安全的,我确实需要服务器管理员的授权功能来创建新的用户帐户等等。
我想问题是,我应该继续尝试使用身份验证来让它与我正在做的事情合作,还是应该尝试创建我自己的身份验证形式?
发布于 2020-07-30 23:23:19
我要说的是学会使用身份服务器。滚动您自己的身份验证是您应该留给专家,否则您的数据将是下一套黑暗的网页上可用。
我怀疑您正在谈论的长字符串是用户的Id。这是一个GUID或UUID取决于您的学校。
我不知道你是否明白你的解决方案有两个UI。服务器正在管理所有的身份管理屏幕,它们可以被覆盖,但这些不是你的Blazor应用程序,在它们之间切换可能是你提到的“尴尬的闪光灯”。
您可以为其他属性自定义这些屏幕,有大量关于此的帖子。您可以通过API创建DTO进行部分更新,这将使用户体验更多地保存在应用程序中。
https://stackoverflow.com/questions/63182214
复制相似问题