Compartir a través de


Procedimiento para obtener la Lista de control de acceso para el objeto de metadatos

Todos los objetos de la jerarquía del Catálogo de datos profesionales de los objetos de metadatos (Application, Entity, Method, MethodInstance, Parameter, TypeDescriptor, etc.) tienen una lista de control de acceso (ACL) que especifica los derechos que tienen los principales sobre el objeto. De los 13 objetos de metadatos, sólo LobSystem, Entity, Method y MethodInstance tienen listas ACL que se pueden controlar de manera individual. Estos objetos se denominan objetos de metadatos protegibles individualmente. Otros objetos de metadatos heredan las listas ACL de sus objetos primarios inmediatos y se denominan objetos de metadatos con control de acceso.

Los clientes de datos profesionales como los datos profesionales en listas y los elementos web de datos profesionales están controlados por permisos del Catálogo de datos profesionales. Los permisos mínimos necesarios en una entidad para que se puedan usar en clientes es el derecho Seleccionable en clientes.

Nota

Puesto que el Catálogo de datos profesionales es un servicio compartido que se comparte en las colecciones de sitios, la configuración de seguridad del nivel de colección del sitio no se le puede aplicar. Por lo tanto, la configuración del sitio tiene poca relación con los permisos del Catálogo de datos profesionales.

La siguiente tabla muestra los derechos que el administrador, o alguien con el derecho Administrar permisos, puede establecer en una aplicación de Catálogo de datos profesionales.

Derecha Se aplica a Descripción

Edición

Objetos de metadatos con control de acceso

  • Actualizar

  • Delete

  • Crear objeto secundario

  • Agregar propiedad

  • Quitar propiedad

  • Borrar propiedades

  • Agregar nombre para mostrar localizado

  • Quitar nombre para mostrar localizado

  • Borrar nombre para mostrar localizado

Administrar permisos

Objetos de metadatos protegibles individualmente

  • Establecer permisos

  • Copiar permisos a secundarios

Ejecutar (Ver)

MethodInstance

  • Ejecutar MethodInstance a través de varias llamadas a la API de tiempo de ejecución

Seleccionable en clientes

Aplicación y entidad

  • Usar en elementos web y en listas

  • Ver en el selector

Ejemplo

El siguiente ejemplo de código muestra cómo recuperar la lista ACL para una instancia LobSystem que está registrada en el Catálogo de datos profesionales.

Requisitos previos

Referencias del proyecto

Antes de ejecutar este ejemplo, agregue las siguientes referencias de proyecto al proyecto de código de aplicación de consola:

  • Microsoft.SharePoint

  • Microsoft.SharePoint.Portal

  • Microsoft.Office.Server

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;

namespace Microsoft.SDK.SharePointServer.Samples
{
    class GetStartedAndCreateSystem
    {
        const string yourSSPName ="EnterYourSSPNameHere";

        static void Main(string[] args)
        {
            SetupBDC();
            GetAccessControlList();
            Console.WriteLine("Press any key to exit...");
            Console.Read();
        }
        static void SetupBDC()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
        }
        public static void GetAccessControlList()
        {
            LobSystemInstance mySysInstance = null;
            LobSystemInstanceCollection sysInsCollection = ApplicationRegistry.Instance.GetLobSystemInstancesLikeName("AdventureWorksSampleFromCode");
            foreach (LobSystemInstance sysInstance in sysInsCollection)
            {
                if (sysInstance.Name == "AdventureWorksSampleFromCode")
                {
                    mySysInstance = sysInstance;
                    break;
                }
            }
            LobSystem ls = mySysInstance.LobSystem;
            IAccessControlList acl = ls.GetAccessControlList();

            foreach (IAccessControlEntry ace in acl)
            {
                Console.WriteLine(ace.IdentityName);
                Console.WriteLine(ace.Rights);
            }
        }
    }
}

Vea también

Otros recursos

Catálogo de datos profesionales: modelo de metadatos