我正在尝试访问已登录的Umbraco用户,而不是成员,但我无法让它工作。
我尝试过以下方法但没有工作,它们都返回null:
umbraco.BusinessLogic.User.GetCurrent()
UmbracoContext.UmbracoUser
UmbracoContext.Security.CurrentUser
umbraco.helper.GetCurrentUmbracoUser()
我可以使用以下代码访问用户,例如姓名:
UmbracoContext.Application.Services.UserService.GetByEmail("name@company.com").Name
我已尝试将此代码作为用户和成员登录,仅用户,仅成员且根本不登录,并且它始终返回相同的结果,null。
我在SurfaceController和UmbracoApiController中尝试了相同的结果。使用Membership.GetUser();
登录成员是否有任何问题吗?
使用:Umbraco 7.3.5版程序集:1.0.5858.25602
答案 0 :(得分:10)
是的,我曾尝试以多种方式访问当前的后端用户,并发现唯一的方法是:
var userTicket = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current).GetUmbracoAuthTicket();
if (userTicket != null)
{
var currentUser = ApplicationContext.Services.UserService.GetByUsername(userTicket.Name);
}
答案 1 :(得分:5)
我昨天刚刚使用以下方法实现了一些代码来获取当前的用户
$ sudo strace -p 1725 -o firefox_trace.txt
$ tail -f firefox_trace.txt
那未被列为您尝试过的选项之一?