.net Core 5 _userManager.RemoveFromRolesAsync 错误:用户名“XXXX”无效,只能包含字母或数字

问题描述

我在 .Net 5.0 中使用 Identity 有以下代码

        var user = await _userManager.FindByIdAsync(userId);
        if (user == null)
        {
            return View();
        }
        var roles = await _userManager.GetRolesAsync(user);
        var result = await _userManager.RemoveFromrolesAsync(user,roles.ToArray());

UserID一个有效的 UserID 并返回一个有效的 user roles 正确填充了属于 user 的角色 RemoveFromrolesAsync 失败并出现以下错误

Username 'xxx' is invalid,can only contain letters or digits.

有什么想法吗?

解决方法

已添加

options.User.AllowedUserNameCharacters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+/\"

IdentityHostingStartup.cs

注意:似乎允许的字符匹配区分大小写...