2010-05-28 4 views

Répondre

0

Si une erreur se produit lors de l'activation d'une fonction, elle n'activera pas la fonction et retirera tous les effets susceptibles d'avoir été déployés dans le cadre du manifeste d'éléments. Ainsi, grâce à l'utilisation astucieuse de cela, vous pouvez utiliser la partie FeatureActivated d'un récepteur de fonctionnalités pour vérifier qui l'active, et lancer une exception UnauthorizedAccessException avec un message d'erreur approprié détaillant pourquoi la fonctionnalité ne peut pas être activée. Cela apparaîtra comme la page d'erreur standard de SharePoint avec le message que vous spécifiez. Si vous disposez déjà d'un récepteur de fonctions sur la fonction, vous devez l'ajouter au début de la partie FeatureActivated, afin qu'aucune action programmatique ne se produise (contrairement aux manifestes d'éléments, ceux-ci ne sont pas annulés en cas d'activation infructueuse).

Si vous n'avez jamais utilisé de récepteur de fonctions auparavant, vous n'avez besoin que de deux parties pour l'établir.

  1. Dans la fonctionnalité XML de votre fonctionnalité, ajoutez les deux attributs suivants au nœud Feature.

    ReceiverAssembly=(four-part-assembly-string) 
    ReceiverClass=(full namespace.class name of receiver class) 
    
  2. Écrivez une classe de récepteur. Il hérite de SPFeatureReceiver et possède 4 remplacements obligatoires dans FeatureActivated, FeatureDeactivating, FeatureInstalled et FeatureUninstalling. Vous n'avez rien à faire pendant les trois dernières minutes. Vous allez écrire votre contrôle de sécurité dans la méthode FeatureActivated.

3

Une manière simple d'empêcher les utilisateurs de la collection de sites d'activer une certaine fonctionnalité est de la marquer comme étant masquée. Ces fonctionnalités ne peuvent ensuite être activées que par les administrateurs de batterie via les commandes STSADM.

Pour masquer une fonctionnalité mise à jour l'attribut caché de l'élément de fonction pour « TRUE » comme indiqué ci-dessous:

<Feature 
     Id="AD2146D-62DA-4911-DBC1-AE177DE40084" 
     Title="Restricted Web Parts" 
     Hidden="TRUE" 
     .../> 

Alternativement, si vous utilisez SharePoint 2010, vous pouvez utiliser Feature Packs pour résoudre ce problème en ciblant une ensemble de fonctionnalités à un ensemble particulier d'utilisateurs.

Questions connexes