asp.net-core - 从 IdentityServer4 创建的后端删除用户

标签 asp.net-core asp.net-identity sql-server-2016 identityserver4

我正在使用 Identity Server 4 在 Asp.Net Core Web 应用程序中注册新的 User 时调试确认电子邮件流。

因为我已经用我的实际电子邮件注册了,为了重用它,我修改了 AspNetUsers 表中的 UserNameEmail 使用 SQL Update 到一些随机值。

现在,当我再次使用原始电子邮件注册时。我收到一个重复用户错误

result = await _userManager.CreateAsync(user, model.Password);

我已经:

  • 清除浏览器缓存。

  • 关闭本地 IIS Express

  • 重新启动 Visual Studio。

  • 在将 UserNameEmail 更新回原始值后使用了_userManager.DeleteAsync() 但这给出了一个 Microsoft.AspNetCore.Identity.IdentityError,描述为乐观并发失败,对象已被修改

    Sql Server 上运行此查询

    从 INFORMATION_SCHEMA.COLUMNS 中选择 *,其中 COLUMN_NAME 在(“用户名”、“电子邮件”)中

我得到以下信息:

AspNetUsers

我知道这不是搞乱后端的好做法,但这是开发环境,我可以使用另一封电子邮件继续我的工作。

我会请求读者帮助理解如何安全地烧毁 User 以便能够重复使用电子邮件。

感谢你的时间

最佳答案

我同意 Kyle 的意见,并且为了进一步加快调试过程,您应该注意,如果您使用 gmail 执行此操作,则可以使用一封电子邮件来调试此过程。

从 google/gmails 的角度来看 myaccount@gmail.com == my.acount@gmail.com == m.y.a.c.c.ount@gmail.com 等等等 试一试,谷歌会忽略电子邮件中的所有句点字符。如果您只是枚举电子邮件地址的本地部分,则可以枚举/耗尽 ~2^8 封电子邮件(在此示例中)。但从您的应用程序方面来看,myaccount@gmail.com 与 my.account@gmail.com 不同,即它们是不同的用户帐户。基本上,您可以使用一封电子邮件来测试您的此功能,而无需删除用户。

关于asp.net-core - 从 IdentityServer4 创建的后端删除用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41693953/

相关文章:

html - Spring中的等效布局(asp.net core)是什么?

c# - FluentScheduler 构造函数中的依赖注入(inject)

arrays - 如何使用服务器 2016 中的新 tsql json 获取结果中的 json 数组值?

tsql - SQL Server LEN 函数报告错误结果

asp.net-core - 如何从asp.net core 1.1项目生成类图

asp.net-core - 在启动期间注册 OpenTelemetry 并在运行时动态添加更多功能

c# - 使用 ApplicationUser 插入依赖实体

c# - 应该如何自定义 ASP.Net Identity

mysql - 使用 EF 6 + MySQL 的 ASP.NET Identity 2 简单用户登录示例

SQL 将重复记录合并到一行