Как получить UserManager.FindByEmail() в качестве вызова выбора для использования с SignInManager.CheckPasswordSignIn()?C#

Место общения программистов C#
Ответить
Anonymous
 Как получить UserManager.FindByEmail() в качестве вызова выбора для использования с SignInManager.CheckPasswordSignIn()?

Сообщение Anonymous »

Мой метод входа приведен ниже, и вы увидите, что мне придется снова позвонить своему пользователю после того, как я получу его с помощью _userManager.FindByEmailAsync(), потому что есть несколько полей Points и Tokens, которые рассчитываются как Sum()
Вопрос. Можно ли каким-либо образом расширить _userManager.FindByEmailAsync() чтобы он запускал Sum, как я это делаю при вызове .Select(), чтобы у меня не было избыточного вызова БД?
Я пытался позвонить:

Код: Выделить всё

var userFromRepo = await _userManager.Users.Select(p => new Core.Entities.User { Id = p.Id, Email = p.Email, UserName = p.UserName}).SingleOrDefaultAsync(p => p.Email == loginDto.Email);
и передайте его в CheckPasswordSignInAsync(), но результат не удался, поэтому он ищет что-то другое, кроме электронной почты, имени пользователя или идентификатора. Но что?
Если я просто вызову это, чтобы вернуть всего пользователя:

Код: Выделить всё

var userFromRepo = await _userManager.Users.SingleOrDefaultAsync(p => p.Email == loginDto.Email);
Это работает, но я не могу запустить вызовы Sum() для Point и Token
Вот мой метод входа.






Подробнее здесь: https://stackoverflow.com/questions/787 ... gninmanage
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»