1. ホーム
  2. asp.net

[解決済み] Microsoft.AspNet.Identityを設定して、ユーザー名として電子メールアドレスを許可する。

2022-07-21 12:19:31

質問

私は新しいアプリケーションを作成している最中で、最初は EF6-rc1, Microsoft.AspNet.Identity.Core 1.0.0-rc1, Microsoft.AspNet.Identity.EntityFramework 1.0.0-rc1, Microsoft.AspNet.Identity.Owin 1.0.0-rc1 などを使っていましたが、昨日 RTM リリースがあったので今日の夜 NuGet を介してそれらを RTM に更新しました。

私がこれまでに行った作業に対するいくつかのコード変更を除いて、アプリのローカル ユーザー アカウントを作成しようとするまでは、すべてがうまくいっているように思えました。

私は、電子メールアドレスがユーザー名の形式であることに取り組んでおり、リリース候補ではうまくいっていましたが、現在、ユーザー名に電子メールアドレスを使用してユーザーを作成すると、次の検証エラーが表示されます。

ユーザー名 [email protected] は無効です。文字または数字のみを含むことができます。

この 1 時間ほど、解決策やそのための設定オプションに関するドキュメントを検索しましたが、無駄でした。

ユーザー名として電子メールアドレスを許可するように設定する方法はありますか?

どのように解決するのですか?

UserManagerに独自のUserValidatorをプラグインするか、デフォルトの実装でそれをオフにすることで、これを可能にすることができます。

UserManager.UserValidator = new UserValidator<TUser>(UserManager) { AllowOnlyAlphanumericUserNames = false }