2016-04-26 10 views
3

Orchard 1.9.2で現在のユーザーの役割をビューから取得しようとしています。オーチャードの現在のユーザーの役割にビューページからアクセスするにはどうすればよいですか?

私はこのコードのスニペットを試してみましたが、それは常に0の役割を返します。

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

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

任意のアイデア?

答えて

1

おそらくusingステートメントはありませんか?

@using Orchard.ContentManagement 

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

編集1

ユーザーが認証されていないように思え:

は、次のコードを試してみてください。 Orchard.Security.CurrentUserWorkContext

  • Orchard.Security.CurrentUserWorkContext.Get("CurrentUser")
  • :このリストには次の実装があるはずIWorkContextStateProviderのリストを列挙

    1. Orchard.Environment.WorkContextImplementation.GetState("CurrentUser")
    2. Orchard.Environment.WorkContextImplementation.FindResolverForState("CurrentUser")
    3. 、上記掲載のコードの行は、次の呼び出しを作成しますIAuthenticationService.GetAuthenticatedUser() - >認証時にユーザーを返す

    したがって、これらの手順のいずれかがユーザーなしで返されるようです。問題がどこにあるかを知るために、Orchard.Environment.WorkContextImplementation.GetState()にブレークポイントを作成することをお勧めします。

  • +0

    ここにusingステートメントがあります。コードを無駄にしようとしました。それはあなたのために働いた? – matthewjamesr

    +0

    ビューはテーマに関係していますか? – matthewjamesr

    +0

    @matthewjamesr私はそれが認証の問題だと思う、** edit 1 ** – ViRuSTriNiTy

    関連する問題