データベース内のユーザーの表示名が一意ではありません。唯一の一意の識別子は UserId です。
通常、次を使用してロールにユーザーを追加します。
Roles.AddUserToRole(user.Username, role);
しかし、ユーザー名がなくなったので、ロールに関連するすべての作業を再考する必要があります。
私が考えることができる厄介なオプションの 1 つは、SimpleMembershipProvider を満たすためだけにすべてのユーザーの Id を Username フィールドにコピーすることです。 . ただ、Users テーブルを偽の列で乱雑にする必要がないようにします。
ここで何か助けていただければ幸いです。
アップデート:
SimpleMembership を機能させるためuserId
に列にコピーしても、ユーザーを作成するにはユーザー名が必要です。username
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, etc)
そのため、自分のメンバーシップをロールバックする以外に、何をすべきか途方に暮れています。
再度更新:メール フィールドを抜き取り、ユーザー名列を使用して一意のメール アドレスを保存できることに気付きました。他にどのように対処できるか、私はまだ興味があります。