ASP.Net MVC 5 - правильный способ доступа к HttpContext.Current.User за пределами контроллера? - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть приложение ASP.NEt MVC 5, которое использует сервис для доступа к информации о пользователе.

В настоящее время я передаю его в качестве параметра методу в классе обслуживания или выполняю в каждом методе, где это требуется, в следующих случаях:

if (HttpContext.Current.User.Identity.IsAuthenticated)
{
        var user = HttpContext.Current.User;

        // do some stuff
}

Как я могу выполнить рефакторинг кода, например, для ввода кодаэто в конструктор класса так, чтобы он был доступен для любого метода в классе, или это правильно, как я делаю это в настоящее время, например, передавая его в качестве параметра?

public class ViewModelBuilderService : IViewModelBuilderService
{
    private readonly IUnitOfWork _unitOfWork;


    public ViewModelBuilderService(IUnitOfWork unitOfWork)
    {
        _unitOfWork = unitOfWork; 

    }

    // Other methods...

}

1 Ответ

0 голосов
/ 19 сентября 2018

Прежде всего, почему вашему бизнес-уровню вообще нужно знать HttpContext.Это не должно ... в случае, если это вообще необходимо, сохранить данные в переменной и передать их вызываемому методу.В настоящее время вы придерживаетесь подхода.

Возможно, вы можете попытаться получить доступ к System.Threading.Thread.CurrentPrincipal, чтобы получить контекст аутентификации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...