获取Umbraco 7.3.5版的当前用户

时间:2016-02-12 13:48:24

标签: c# asp.net asp.net-web-api umbraco

我正在尝试访问已登录的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

2 个答案:

答案 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

那未被列为您尝试过的选项之一?