【问题标题】:Create custom user based authentication for use with Blazor Server vs Identity authentication [closed]创建自定义基于用户的身份验证以用于 Blazor 服务器与身份身份验证 [关闭]
【发布时间】:2020-11-20 17:34:59
【问题描述】:

首先我应该说我对 .Net 和一般的 Web 开发非常陌生 - 可能有一个非常简单的解决方案,对于这篇文章中包含的所有内容,我提前道歉。

基本上我想要做的是要求用户登录到由站点管理员为他们创建的帐户 - 只需一个电子邮件和密码。从那里,我希望这些用户能够通过几个步骤来使用一些信息填充 SQL 数据库,并将数据库中的信息链接到用户以允许将来访问(我的计划是使用关系数据库)

我尝试通过 Blazor 开箱即用的身份验证来实现这一点,但是我遇到了几个问题:

我的第一个问题是无法将用户重定向到 Identity 提供的登录页面 - 理想情况下,此登录页面将是 Blazor 组件而不是 razor 页面,因此该页面将具有统一的布局,但是,这并没有为我工作 - 在重定向到登录页面之前,重定向到登录页面会导致网站主页的尴尬闪烁。

我的第二个问题是尝试使用身份用户 ID 作为路由管理器的参数,因为它给我提供了一些错误,以及一个很长的字符串,让我相信 ID 可能已加密? (我无法理解这个身份验证系统中发生了什么)

所有这一切让我认为创建自己的身份验证会更简单,它可以更好地与 Blazor 组件 UI 一起使用(尽管我绝对可以不这样做),因为它是一个供内部使用的应用程序和我确实不需要身份验证提供的很多东西(双因素,锁定,所有其他东西)。但是,我不确定从哪里开始,因为简单地创建数据库表感觉好像不安全,而且我确实需要服务器管理员的授权功能来创建新的用户帐户等。

我想毕竟问题是,我应该继续尝试使用身份验证以使其与我正在做的事情合作,还是应该尝试创建自己的身份验证形式?

【问题讨论】:

    标签: authentication .net-core asp.net-identity blazor


    【解决方案1】:

    我要说的是学习使用身份服务器。滚动您自己的身份验证是您应该留给专家的事情,否则您的数据将成为暗网上的下一组可用数据。

    我怀疑您所说的长字符串是用户的 ID。它是 GUID 或 UUID,具体取决于您的教育程度。

    我不确定您是否了解您的解决方案有两个 UI。 服务器正在管理所有身份管理屏幕,它们可以被覆盖,但这些不是您的 Blazor 应用程序,在它们之间切换将是您提到的“尴尬的闪存”。

    您可以为其他属性自定义这些屏幕,有很多关于此的帖子。您可以通过 API 创建用于部分更新的 DTO,这将更多地保持应用内的用户体验。

    【讨论】:

      猜你喜欢
      • 2021-04-30
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 2020-04-01
      • 2022-12-10
      • 2016-10-18
      • 2011-05-23
      相关资源
      最近更新 更多