我正在使用Orhcard模块,我需要获取当前用户的ID。我尝试了所有可以在google上找到的东西,但都没有成功。 CurrentUser总是空。下面是我试过为什么WorkContext.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显示用户的姓名。
我错过了什么?
'WorkContext.CurrentUser'是要使用的方法。如果它不起作用,这意味着你正在查看尚未知道的时间。 –
避免在通过DI实例化的类的ctors中放置比简单字段分配更复杂的逻辑。那里的任何错误很可能会打击整个网站。但即使不这样做 - 它会减缓依赖性解决过程。更何况大部分课程在这一点上还不会完全构建。 –
@Piotr它仅用于测试di –