Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Umbraco 7.3.5版中获取当前用户_C#_Asp.net_Asp.net Web Api_Umbraco - Fatal编程技术网

C# 在Umbraco 7.3.5版中获取当前用户

C# 在Umbraco 7.3.5版中获取当前用户,c#,asp.net,asp.net-web-api,umbraco,C#,Asp.net,Asp.net Web Api,Umbraco,我正在尝试访问已登录的Umbraco用户,而不是成员,但无法使其正常工作 我尝试了以下方法,但都无效,它们都返回null: umbraco.BusinessLogic.User.GetCurrent() UmbracoContext.UmbracoUser UmbracoContext.Security.CurrentUser umbraco.helper.GetCurrentUmbracoUser() 我可以使用下面的代码访问用户,例如Name: UmbracoContext.Applica

我正在尝试访问已登录的Umbraco用户,而不是成员,但无法使其正常工作

我尝试了以下方法,但都无效,它们都返回null:

umbraco.BusinessLogic.User.GetCurrent()
UmbracoContext.UmbracoUser
UmbracoContext.Security.CurrentUser
umbraco.helper.GetCurrentUmbracoUser()
我可以使用下面的代码访问用户,例如Name:

UmbracoContext.Application.Services.UserService.GetByEmail("name@company.com").Name
我曾经尝试过以用户和成员、唯一用户、唯一成员和根本不登录的身份登录此代码,它总是返回相同的结果,null

我已经在SurfaceControl和UmbracoApicController中尝试了该代码,并获得了相同的结果。使用
Membership.GetUser()获取登录成员没有问题还有其他人经历过这种情况吗


使用:Umbraco版本7.3.5程序集:1.0.5858.25602

我昨天刚刚实现了一些代码,以获取当前用户使用:

UmbracoContext.Current.Security.CurrentUser

这不是您尝试过的选项之一?

是的,我以前尝试过多种方式访问当前后端用户,但发现唯一的方法是:

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

我也尝试过这个,但由于某些原因,我没有得到当前的上下文。我得到的错误是:“'UmbracoContext.Current'无法使用实例引用访问;请改为使用类型名对其进行限定”。我没有尝试新建它或类似的东西,我在即时窗口中尝试时也会遇到此错误。您的UmbracoContext来自哪个命名空间?@ProNotion您将在命名空间Umbraco.Web中找到UmbracoContext,查看更多信息。只需一次小的编辑,就可以完美地工作。Current似乎已经被替换,所以现在我只使用了“var currentUser=ApplicationContext.Services.UserService.GetByUsername(userTicket.Name);”啊,奇怪的是,它在7.3.6中对我有用。但很高兴它起了作用!刚刚在7.3.6上检查了您的版本,它也可以正常工作,所以我已经批准了该编辑。