Внедрение зависимостей ASP.NET в методы расширения - PullRequest
0 голосов
/ 21 апреля 2019

Я хотел бы расширить UserManager, чтобы разрешить поиск пользователя по имени пользователя.Я создал метод расширения.Я заметил, что самый простой способ добиться этого - получить UserStore.Я не могу сделать это с помощью UserManager, потому что Store защищен.Я решил использовать DI для ввода UserStore в мой метод, но я даже не уверен, что это возможно.

Я пытался передать в качестве второго аргумента IUserStore<T> store, но VS говорит, что аргумент не был предоставлен.

using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;

namespace Learning.Extensions
{
    public static class UserManagerExtension
    {
        public static Task<T> FindByUserNameAsync<T>(this UserManager<T> userManager, IUserStore<T> store, string userName) where T : class
        {
            var result = store.FindByNameAsync(userName, CancellationToken.None);

            return result;
        }
    }
}

1 Ответ

2 голосов
/ 21 апреля 2019

Вы можете использовать существующий метод для поиска пользователя по имени:

public Task<TUser> UserManager<TUser>.FindByNameAsync(String);

Дополнительную информацию можно найти в Документах ASP.NET Core .

...