我正在尝试引用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)
答案 0 :(得分:4)
是可以是许可问题。 也许该用户没有项目的读取权限; 如果您想对您的商品拥有完全访问权限,请使用:
// 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中的。
答案 1 :(得分:2)
sitecore登山者可能正确地指出这是一个安全问题。尝试使用“Access Viewer”( Sitecore>安全工具> Access Viewer )查看您的用户是否具有相关项目的读取权限。提示:在访问查看器中,从“用户”块中选择用户/角色。