orchardcms - 为什么 WorkContext.CurrentUser 总是空的?

标签 orchardcms orchardcms-1.8

我正在开发一个 Orhcard 模块,我需要获取当前用户的 ID。我已经尝试了所有我能在谷歌上找到的东西,但没有任何效果。 CurrentUser 始终为空。这是我最近尝试过的东西

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;

        }

a,b & c 都是空的。我可以从 HttpContext.User 中获取用户名,但我需要 ID。用户已登录。我尝试了各种帐户和帐户类型。我可以看到与用户一起工作的其他部分正在工作,并且能够通过 WorkContext 显示用户名。

我错过了什么?

最佳答案

看起来您正在尝试从构造函数访问它。在使用它们之前,您需要真正正确地注入(inject)这些服务。所以……

private readonly IOrchardServices _orchardServices;

public MyWidgetDriver(IOrchardServices orchardServices) {
 _orchardServices = orchardServices;
}

public DriverResult Display(...) {
 var b = _orchardServices.WorkContext.CurrentUser;
 var id = b.Id;
}

关于orchardcms - 为什么 WorkContext.CurrentUser 总是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27584286/

相关文章:

cors - 如何在 Orchard CMS 上启用 CORS?

entity-framework - Orchard CMS 是否支持带有 Entity Framework 的 MVC4

javascript - 尽管需要,Dojo/请求仍未定义

orchardcms - Orchard CMS 已准备好迎接黄金时段

asp.net - 负载平衡 Web 服务器上的 Orchard CMS

url - Orchard 我可以根据投影仪小部件的 url 或页面 ID 进行查询吗?

html - 在 Orchard CMS 中导入 html

c# - 我们如何检查动态粘土对象是否具有属性?