我正在使用 Identity Server 4 在 Asp.Net Core Web 应用程序中注册新的 User
时调试确认电子邮件流。
因为我已经用我的实际电子邮件注册了,为了重用它,我修改了 AspNetUsers
表中的 UserName
和 Email
使用 SQL Update
到一些随机值。
现在,当我再次使用原始电子邮件注册时。我收到一个重复用户错误
result = await _userManager.CreateAsync(user, model.Password);
我已经:
清除浏览器缓存。
关闭本地 IIS Express
重新启动 Visual Studio。
在将
UserName
和Email
更新回原始值后使用了_userManager.DeleteAsync()
但这给出了一个Microsoft.AspNetCore.Identity.IdentityError
,描述为乐观并发失败,对象已被修改
。在
Sql Server
上运行此查询从 INFORMATION_SCHEMA.COLUMNS 中选择 *,其中 COLUMN_NAME 在(“用户名”、“电子邮件”)中
我得到以下信息:
我知道这不是搞乱后端的好做法,但这是开发环境,我可以使用另一封电子邮件继续我的工作。
我会请求读者帮助理解如何安全地烧毁 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/