Partager via


Procédure : obtenir la liste de contrôle d'accès pour un objet de métadonnées

Dans la hiérarchie des objets de métadonnées du catalogue de données métiers, chaque objet (Application, Entity, Method, MethodInstance, Parameter, TypeDescriptor, etc.) possède une liste de contrôle d'accès (ACL). Cette liste spécifie quelles entités de sécurité ont des droits sur l'objet, et lesquels. Parmi les 13 objets de métadonnées, seuls LobSystem, Entity, Method et MethodInstance possèdent des listes de contrôle d'accès qui peuvent être contrôlées individuellement. Ces objets sont désignés comme des objets de métadonnées sécurisables individuellement. Les autres objets de métadonnées héritent des listes de contrôle d'accès de leur parent immédiat et sont désignés comme des objets de métadonnées à accès contrôlé.

Les clients de données métiers tels que les composants WebPart Liste de données métiers et Données métiers sont pilotés par les autorisations du catalogue de données métiers. L'autorisation minimale requise sur une entité afin qu'elle puisse être utilisée dans les clients est l'autorisation Sélectionnable dans les clients.

Notes

Étant donné que le catalogue de données métiers est un service partagé dans les collections de site, les paramètres de sécurité des niveaux de collection de sites ne peuvent pas y être appliqués. Par conséquent, les paramètres de sites ont peu de relation avec les autorisations du catalogue de données métiers.

Le tableau suivant montre les droits de l'administrateur, ou de la personne possédant le droit Gérer les autorisations, définis sur une application de catalogue de données métiers.

Droit S'applique à Description

Editer

Objets de métadonnées à accès contrôlé

  • Mettre à jour

  • Supprimer

  • Créer un objet enfant

  • Ajouter une propriété

  • Supprimer une propriété

  • Effacer les propriétés

  • Ajouter un nom complet localisé

  • Supprimer un nom complet localisé

  • Effacer les noms complets localisés

Gérer les autorisations

Objets de métadonnées sécurisables individuellement

  • Définir les autorisations

  • Copier les autorisations dans les enfants

Exécuter (Afficher)

MethodInstance

  • Exécuter MethodInstance via plusieurs appels API d'exécution

Sélectionnable dans les clients

Application et entité

  • Utiliser dans les composants WebPart et les listes

  • Afficher dans le sélecteur

Exemple

Le code exemple suivant montre comment extraire la liste de contrôle d'accès pour une instance LobSystem enregistrée dans le catalogue de données métiers.

Prérequis

Références de projet

Ajoutez les références de projet suivantes dans le projet de code de votre application console avant d'exécuter ce code exemple :

  • 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);
            }
        }
    }
}

Voir aussi

Autres ressources

Catalogue de données métiers : modèle de métadonnées