コード例 #1
0
        public string GetItemSecurityString(string sPath)
        {
            System.Text.StringBuilder builder = new System.Text.StringBuilder();
            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                Sitecore.Data.Items.Item item = GetItemFromMasterdatabase(sPath);
                for (int i = 0; i < item.SecurityField.Assignments.Count; i++)
                {
                    Sitecore.SecurityModel.SecurityAssignment securityAssignment = item.SecurityField.Assignments[i];
                    builder.Append("Domain: " + securityAssignment.DomainName);
                    builder.Append(", group: " + securityAssignment.EntityID.ToString());
                    Sitecore.Data.Items.Item groupItem = GetItemFromSecuritydatabase(securityAssignment.EntityID.ToString());
                    if (groupItem != null)
                    {
                        builder.Append("(" + securityAssignment.DomainKey + " - " + groupItem.Name + " - " + groupItem.Paths.ContentPath + ")");
                    }

                    builder.Append("\n");
                    Sitecore.SecurityModel.ItemRights rights = securityAssignment.Rights;
                    builder.Append(" - " + rights.ToString());
                    builder.Append("\n");
                }
            }
            return(builder.ToString());
        }
コード例 #2
0
        public RoleStruct[] GetItemSecurity(string sPath)
        {
            List <RoleStruct> roles5x = new List <RoleStruct>();

            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                Sitecore.Data.Items.Item item = GetItemFromMasterdatabase(sPath);
                for (int i = 0; i < item.SecurityField.Assignments.Count; i++)
                {
                    Sitecore.SecurityModel.SecurityAssignment securityAssignment = item.SecurityField.Assignments[i];
                    Sitecore.Data.Items.Item groupItem = GetItemFromSecuritydatabase(securityAssignment.EntityID.ToString());
                    if (groupItem == null)
                    {
                        continue;
                    }
                    AccessRights AccessRight = GetConverterAccessRights(securityAssignment.Rights);
                    RoleStruct   role        = new RoleStruct();

                    role.Name        = securityAssignment.DomainName + "\\" + groupItem.Name;
                    role.ID          = securityAssignment.EntityID.ToString();
                    role.Path        = groupItem.Paths.ContentPath;
                    role.AccessRight = AccessRight;
                    if (groupItem.Fields["email"] != null)
                    {
                        role.Email = groupItem.Fields["email"].Value;
                    }
                    if (groupItem.Fields["fullname"] != null)
                    {
                        role.FullName = groupItem.Fields["fullname"].Value;
                    }
                    if (groupItem.Fields["password"] != null)
                    {
                        role.PassWord = groupItem.Fields["password"].Value;
                    }
                    if ((groupItem.Fields["administrator"] != null) && (groupItem.Fields["administrator"].Value == "1"))
                    {
                        role.IsAdmin = true;
                    }
                    else
                    {
                        role.IsAdmin = false;
                    }

                    if (groupItem.Fields["roles"] != null)
                    {
                        role.Roles = "";
                        foreach (string sID in groupItem.Fields["roles"].Value.Split('|'))
                        {
                            Sitecore.Data.Items.Item roleItem = GetItemFromSecuritydatabase(sID);
                            if (roleItem != null)
                            {
                                if (role.Roles != "")
                                {
                                    role.Roles += "|";
                                }
                                role.Roles += securityAssignment.DomainName + "\\" + roleItem.Name;
                            }
                        }
//                        role.Roles = groupItem.Fields["roles"].Value;
                    }

                    roles5x.Add(role);
                }
            }
            return(roles5x.ToArray());
        }