1

これを使用して、新しく作成したユーザーを役割に追加しています。

var db = new ApplicationDbContext();
ApplicationDbContext context = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);

userManager.AddToRole(user.Id, model.UserRole);

私のソリューションでは、ユーザー名 = メールです。

ユーザー名/電子メールに記号 (+、-、​​またはそのようなもの) が含まれていると、ユーザーがロールに追加されないことがわかりました。私が得るエラーは " User name x is invalid, can only contain letters or digits."です。ユーザーは正常に追加されます。失敗するのは AddToRole だけです。

しかし、私はその理由を理解できません。

AllowOnlyAlphanumericUserNamesIdentityConfig.cs で false に設定されている

何か案は?

4

3 に答える 3

1

問題は、 UserManagerの新しいインスタンスを作成していて、 IdentityConfigのインスタンスを使用していないことだと思います。コードuserManager.AllowOnlyAlphanumericUserNames = false;の行の後に設定してみてください var userManager = new UserManager<ApplicationUser>(userStore);

于 2016-03-29T13:35:22.763 に答える