1

Sitecore でアイテムを参照しようとしています。私のコードでは、MyItem1は{12345ABC-4784-4869-AD80-D90B07350835} に対してNullを返します。

「一般ユーザー」は参照できますが、「特別ユーザー」は参照できません。これは権限の問題でしょうか?

注: 「特別なユーザー」アイテムは、マスター データベースと Web データベースの両方に存在します。

    Dim SCDataItemValue As String = ""
    Dim ADGroupValue As String = ""

    If Not Request.QueryString("type") Is Nothing AndAlso Request.QueryString("type").ToString.ToLower.Trim = "special" Then
        'Get values for Special User.
        SCDataItemValue = "{12345ABC-4784-4869-AD80-D90B07350835}"
        ADGroupValue = "GroupAccess_Special"
    Else
        'Regular User.
        SCDataItemValue = "{1911A077-2E41-4CAB-ADAC-1911A077EB62}"
        ADGroupValue = "GroupAccess"
    End If

    Dim scItemID As New Sitecore.Data.ID(SCDataItemValue)
    Dim MyItem1 As Sitecore.Data.Items.Item = Sitecore.Context.Database.GetItem(scItemID)
4

2 に答える 2

4

はい、許可の問題になる可能性があります。おそらく、そのユーザーは item の読み取り権限を持っていません。アイテムへの完全なアクセス制御が必要な場合は、次を使用してください。

  // The SecurityDisabler overrides the current security model, allowing you
 // to access the item without any security. It's like the user being an administrator

 using (new Sitecore.SecurityModel.SecurityDisabler())
        {
  Dim scItemID As New Sitecore.Data.ID(SCDataItemValue)
  Dim MyItem1 As Sitecore.Data.Items.Item = Sitecore.Context.Database.GetItem(scItemID)
        }

コードが Visual Basic で正確にどのようになっているのかわかりません。

于 2013-07-22T18:35:48.093 に答える
2

サイトコア クライマーがこれをセキュリティ上の問題であると述べたのはおそらく正しいでしょう。「アクセス ビューアー」 ( [サイトコア] > [セキュリティ ツール] > [アクセス ビューアー]) を使用して、ユーザーが問題のアイテムへの読み取りアクセス権を持っているかどうかを確認してください。ヒント: アクセス ビューアーで、[ユーザー] チャンクからユーザー/ロールを選択します。

于 2013-07-22T21:47:09.020 に答える