2016-04-26 17 views
3

Ich versuche, die aktuellen Benutzerrollen in Orchard 1.9.2 aus einer Ansicht zu erhalten.Wie kann ich auf einer Ansichtsseite auf die aktuellen Benutzerrollen in Orchard zugreifen?

habe ich versucht, diesen Code-Schnipsel, aber es gibt immer 0 Rollen:

var roles = ((ContentItem)WorkContext.CurrentUser.ContentItem).As<UserRolesPart>().Roles; 

Quelle: https://www.cloudconstruct.com/blog/retrieving-role-information-in-your-orchard-view-templates

Irgendwelche Ideen?

Antwort

1

Vielleicht fehlt die using-Anweisung?

Versuchen Sie, den folgenden Code:

@using Orchard.ContentManagement 

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

bearbeiten 1

Es scheint, wie der Benutzer nicht authentifiziert ist. Die Codezeile oben gepostet erstellt die folgenden Anrufe:

  1. Orchard.Environment.WorkContextImplementation.GetState("CurrentUser")
  2. Orchard.Environment.WorkContextImplementation.FindResolverForState("CurrentUser")
  3. durch eine Liste von IWorkContextStateProvider aufzählt, können in dieser Liste sollte die folgende Umsetzung sein: Orchard.Security.CurrentUserWorkContext
  4. Orchard.Security.CurrentUserWorkContext.Get("CurrentUser")
  5. IAuthenticationService.GetAuthenticatedUser() -> die den Benutzer zurückgibt, wenn authentifiziert

So scheint es, dass jeder dieser Schritte ohne den Benutzer zurückkehrt. Ich schlage vor, Sie erstellen einen Haltepunkt in Orchard.Environment.WorkContextImplementation.GetState(), um herauszufinden, wo das Problem liegt.

+0

Die using-Anweisung ist da. Ich habe den Code vergebens ausprobiert. Es hat für dich funktioniert? – matthewjamesr

+0

Ist es wichtig, dass die Ansicht in einem Thema ist? – matthewjamesr

+0

@matthewjamesr Ich denke, es ist ein Authentifizierungsproblem, siehe ** bearbeiten 1 ** – ViRuSTriNiTy

Verwandte Themen