Я использую класс Asp.net mvc IdentityUser для хранения пользователей в моем приложении.В базе данных есть таблица AspNetUsers, и все пользователи не имеют электронной почты.Но теперь мне нужно было добавить дополнительную информацию о клиентах в класс ApplicationUser.Теперь на пользователях с электронной почтой могут быть как клиенты А, так и клиенты Б с одинаковыми адресами электронной почты
Мой класс ApplicationUser выглядит следующим образом:
public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
public Customer Customer { get; set; }
[Required]
public int CustomerId { get; set; }
}
Но я не смог найти способ расширить UserManager и изменить методы по мере необходимости.
public async System.Threading.Tasks.Task<bool> AddAccount(string email, int customerId)
{
// Asp.net User
var user = await UserManager.FindByEmailAsync(email);
string password = Membership.GeneratePassword(5, 1);
if (user == null)
{
user = new ApplicationUser { UserName = email, Email = email, CustomerId = customerId };
var result = await UserManager.CreateAsync(user, password);
if (!result.Succeeded)
{
return false;
}
}
return true;
}
Мне нужно расширить метод FindByEmailAsync, чтобы он не только принимал параметр электронной почты, но также принимал CustomerId в качестве параметра.
Мне нужен FindByEmail (string email, int customerId) ия не знаю как это сделать?