0
私はアプリケーションでユーザーとロールモジュールを行うためにasp.Identityを使用しています。私はこのようなユーザーを作成しますAsp.NET IDの問題
var user = new ApplicationUser() { UserName = name, Email = email };
IdentityResult result1 = ApplicationUserManager.AppUserManager.Create(user, password);
それはユーザーを作成します、問題は、アプリケーションマネージャーで重複する電子メールをチェックしないことです。私のアプリケーションマネージャは、この
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var manager = new ApplicationUserManager(new EntityUserStore<ApplicationUser, Account, ApplicationRole, Role>());
AppUserManager = manager;
// Configure validation logic for usernames
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = true
};
// Configure validation logic for passwords
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = false,
RequireDigit = false,
RequireLowercase = false,
RequireUppercase = false,
};
var dataProtectionProvider = options.DataProtectionProvider;
if (dataProtectionProvider != null)
{
manager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));
}
return manager;
}
のように見える他のは、私は、ユーザー名を使用してログインあれば、それは動作しますが、私はエマール使用している場合、それはnullを返し、という問題です。
ApplicationUser user = UserManager.FindByEmail(email); // this returns null
誰もがこの問題に精通していますか?
もし 'result1'がNot Succeededなら' ModelState.AddModelError( ""、 "無効なログイン試行。"); ' –
となるはずですが、電子メールが送信されていなくても成功し、ユニーク – mohsinali1317
電子メールによるログインの問題については、[this](http://stackoverflow.com/questions/27498840/how-to-login-using-email-in-identity-2)を調べることをお勧めします。 –