Я работаю над модулем Orhcard, и мне нужно получить идентификатор текущего пользователя. Я пробовал все, что мог найти в Google, но ничего не сработало. CurrentUser всегда имеет значение null. Вот последние вещи, которые я пробовалПочему WorkContext.CurrentUser всегда имеет значение null?
public MyWidgetDriver(IWidgetService widgetService,
IAuthenticationService authenticationService,RequestContext requestContext,
IWorkContextAccessor workContextAccessor, IOrchardServices orchSvc)
{
var a = authenticationService.GetAuthenticatedUser();
var b = orchSvc.WorkContext.CurrentUser;
var c = workContextAccessor.GetContext().CurrentUser;
}
а, б & с всем нуль. Я могу получить имя пользователя из HttpContext.User, но мне нужен идентификатор. пользователь вошел в систему. Я пробовал различные учетные записи и типы учетных записей. Я вижу, что другие части, которые работают с пользователем, работают и могут показывать имя пользователя через WorkContext.
Что мне не хватает?
'WorkContext.CurrentUser' - это метод использования. Если это не работает, это означает, что вы смотрите на время, когда оно еще не известно. –
Избегайте более сложной логики, чем простые назначения полей в классах классов, которые создаются через DI. Любая ошибка там, скорее всего, повредит весь сайт. Но даже если это не так - это замедлит процесс разрешения зависимостей. Не говоря уже о том, что большинство классов пока не будут полностью построены. –
@Piotr это было только для тестирования ди –