首页 > 解决方案 > .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是一个有效的用户 ID,并返回一个有效user roles的正确填充属于user RemoveFromRolesAsync失败的角色,并出现以下错误:

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

有任何想法吗 ?

标签: asp.net-mvc.net-corec#-5.0

解决方案


添加

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

IdentityHostingStartup.cs

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


推荐阅读