【问题标题】:Upgrading to .NET Core 3.1: Replacement for UserManager.NormalizeKey method?升级到 .NET Core 3.1:替换 UserManager.NormalizeKey 方法?
【发布时间】:2025-11-28 15:40:01
【问题描述】:

我正在将 ASP.NET Core 项目从 2.2 更新到 3.1。我已经使用迁移文档整理了所有其他内容,但看起来UserManager<TUser>.NormalizeKey(String) 在 v2.2 之后刚刚消失,我找不到任何迁移文档。

来自what I can tell 似乎没有必要使用。但我不确定,我们到处都是。

为了后代,错误是:The name 'NormalizeKey' does not exist in the current context

我的代码是这样的:

public virtual async Task<IdentityResult> AddToRequestedRoleAsync(ApplicationUser user, string role)
{
  if (user == null) {
    throw new ArgumentNullException(nameof(user));
  }

  var normalizedRole = NormalizeKey(role);
}

【问题讨论】:

    标签: c# asp.net-core asp.net-identity asp.net-core-3.1 asp.net-core-2.2


    【解决方案1】:

    在更高版本的 .NET Core 中,NormalizeKey 已替换为 NormalizeEmailNormalizeName

    您可能不需要规范化,因为FindByEmailAsync 会为您规范化参数。

    【讨论】:

    • 我明白了。看起来它到处都是(很多用户字段),而没有意识到它实际上做了什么。