Accueil > WCF Data Services > WCF Data Services : Exposer toutes les entités à l’exception de quelques unes

WCF Data Services : Exposer toutes les entités à l’exception de quelques unes

Lorsqu’on travaille avec WCF Data Services et lors de la définition de notre service de données, nous devons configurer notre service de données à travers la méthode statique InitializeService. La configuration concerne l’accès aux ressources et opérations de service, la version d’OData prise en charge etc…

Si nous avons plusieurs ressources dont les accès doivent être configurés à l’exception de quelques unes, ça peut vite devenir lassant de devoir saisir la configuration de chaque ressource et peut aussi entraîner l’oubli de configuration et des erreurs.

Par exemple nous avons 30 ressources dont l’accès pour chaque ressource doit être défini à EntitySetRights.All et qu’il y en a deux ou un petit nombre dont l’accès n’est pas autorisé donc EntitySetRights.None. Pour ne pas avoir à effectuer la configuration pour chaque ressource, la méthode la plus simple dans le cas de notre exemple est de :

  1. mettre l’accès de toutes nos ressources à EntitySetRights.All
  2. configurer chaque ressource dont l’accès ne devrait pas être autorisé donc mettre EntitySetRights.None

Exemple :

public static void InitializeService(DataServiceConfiguration config)
        {
            // étape 1 
            config.SetEntitySetAccessRule("*", EntitySetRights.All);
            // étape 2
            config.SetEntitySetAccessRule("CollectionNonAutoriséeUn", EntitySetRights.None);
            config.SetEntitySetAccessRule("CollectionNonAutoriséeDeux", EntitySetRights.None);
            
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
        }

Nota Béné : Qu’on commence par l’étape 2 et qu’on termine par l’étape 1 on aura le même résultat. 😉
Donc le code ci-dessous donnera le même résultat que le code précédent 😀 :

public static void InitializeService(DataServiceConfiguration config)
        {
            // étape 2
            config.SetEntitySetAccessRule("CollectionNonAutoriséeUn", EntitySetRights.None);
            config.SetEntitySetAccessRule("CollectionNonAutoriséeDeux", EntitySetRights.None);
            
            // étape 1 
            config.SetEntitySetAccessRule("*", EntitySetRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
        }
Publicités
Catégories :WCF Data Services Étiquettes : , ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :