Asp.net-Mvc

如何使用身份 2 中的電子郵件登錄?

  • December 16, 2014

在 MVC5 Identity 2 SignInManager.PasswordSignInAsync 中使用使用者名進行登錄。

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

但我的使用者名和電子郵件不一樣。但我想通過電子郵件地址登錄。那麼我該怎麼做呢?謝謝

通過電子郵件從 UserManager 獲取使用者。

var user = UserManager.FindByEmail(email);

然後將 SignInManager 的 PasswordSignInAsync 與使用者的使用者名一起使用

var result = await SignInManager
.PasswordSignInAsync(user.UserName,password,isPersistent,shouldLockout);

或在您的 SignInManager 中添加此方法(ASP.NET Identity 討論

public async Task<SignInStatus> PasswordEmailSignInAsync(string email, string password, bool isPersistent, bool shouldLockout)
{
     var user =  UserManager.FindByEmail(email);
     return await PasswordSignInAsync(user.UserName,password,isPersistent,shouldLockout);
}

然後將其與 PasswordSignInAsync 相同,但使用使用者電子郵件而不是 usermane。

引用自:https://stackoverflow.com/questions/27498840