2016-04-26 34 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

相關問題