2016-04-26 36 views

回答

1

也许使用声明丢失?

试试下面的代码:

@using Orchard.ContentManagement 

@{ 
    var roles = WorkContext.CurrentUser.As<Orchard.Roles.Models.UserRolesPart>().Roles; 
} 

编辑1

好像用户没有通过认证。上面贴的代码行创建下列电话:

  1. Orchard.Environment.WorkContextImplementation.GetState("CurrentUser")
  2. Orchard.Environment.WorkContextImplementation.FindResolverForState("CurrentUser")
  3. 枚举通过IWorkContextStateProvider列表,该列表中应该有下面的实现:Orchard.Security.CurrentUserWorkContext
  4. Orchard.Security.CurrentUserWorkContext.Get("CurrentUser")
  5. IAuthenticationService.GetAuthenticatedUser() - >当认证时返回用户

因此,似乎任何这些步骤没有用户返回。我建议你在Orchard.Environment.WorkContextImplementation.GetState()中创建一个断点来找出问题出在哪里。

+0

使用语句在那里。我尝试了代码无济于事。它适合你吗? – matthewjamesr

+0

视图是否在主题中有关系吗? – matthewjamesr

+0

@matthewjamesr我认为这是一个身份验证问题,请参阅**编辑1 ** – ViRuSTriNiTy

相关问题