2016-02-12 5 views
3

Я пытаюсь получить доступ к зарегистрированному пользователю Umbraco User, а не члену, но я не могу заставить его работать.Получить текущий пользователь в Umbraco версии 7.3.5

Я попытался следующие методы, но ни один работы, они все возвращаются нуль:

umbraco.BusinessLogic.User.GetCurrent() 
UmbracoContext.UmbracoUser 
UmbracoContext.Security.CurrentUser 
umbraco.helper.GetCurrentUmbracoUser() 

я могу получить доступ к пользователю, например, имя, на код ниже:

UmbracoContext.Application.Services.UserService.GetByEmail("[email protected]").Name 

I пробовал этот код, регистрируемый как пользователь и член, только пользователь, только член и не вошел в систему вообще, и он всегда возвращает тот же результат, null.

Я пробовал код в SurfaceController и UmbracoApiController с тем же результатом. Нет проблем с получением зарегистрированного участника с помощью Membership.GetUser();. Кто-нибудь еще испытал это?

Использование: Umbraco версии 7.3.5 сборки: 1.0.5858.25602

ответ

7

Да, я пытался получить доступ к текущему пользователю бэкэнда во многих отношениях до и нашел единственный способ это сделать:

var userTicket = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current).GetUmbracoAuthTicket(); 
if (userTicket != null) 
{ 
    var currentUser = ApplicationContext.Services.UserService.GetByUsername(userTicket.Name); 
} 
+0

Работал безупречно с одним незначительным редактированием. Текущий, похоже, был заменен, поэтому теперь я использовал только «var currentUser = ApplicationContext.Services.UserService.GetByUsername (userTicket.Name);» – Ogglas

+1

Ах, странно, это работает для меня в 7.3.6 с этим. Но рад, что это помогло! Просто проверил вашу версию на 7.3.6, и она работает так, поэтому я одобрил это редактирование. –

3

Я только вчера реализован код, чтобы получить текущий пользователя с помощью:

UmbracoContext.Current.Security.CurrentUser 

Это не указан как один из варианты, которые вы пробовали?

+0

Пробовал это как хорошо, но по какой-то причине я не получаю тока для UmbracoContext , Ошибка, которую я получаю: «« UmbracoContext.Current »не может быть доступен с ссылкой на экземпляр, вместо этого используйте его с именем типа». Я не пытаюсь это сделать или что-то в этом роде, я получаю эту ошибку, когда я пытаюсь ее также в окне Immediate. – Ogglas

+0

Какое пространство имен принадлежит вашему UmbracoContext? – ProNotion