Question

J'ai besoin pour permettre aux administrateurs non agricoles pour pouvoir créer des collections de sites en utilisant une définition de site très spécifique. Ces personnes n'auront pas accès à l'administrateur central et exigent une solution personnalisée pour permettre la création de ces derniers. J'ai essayé plusieurs solutions, mais qui veulent un consensus sur une approche recommandée.

  1. Service personnalisé Web - j'ai écrit un service Web personnalisé pour effectuer cette tâche mais cela les grands maux de tête causés et même si le service Web est en cours d'exécution dans un pool d'application en utilisant la même identité que le pool d'application sharepoint Je ne pouvais pas obtenir ce travail. Il y avait également des problèmes sous forme digest en essayant d'effectuer cette v ia un service Web.

  2. Web Partie / Application page - Aucun formulaire digest questions ici que nous sommes dans le contexte de SharePoint, mais je l'ai essayé d'utiliser RunWithElevatedPrivileges mais je reçois toujours un accès refusé lors de l'appel SPWebbApplication.Sites.Add (), même si pbjects tous SPSite et SPWeb sont instanciés à l'intérieur du bloc de code élevé. Je l'ai essayé l'usurpation d'identité directe au niveau de l'interface utilisateur et je reçois un UnhandledException disant que l'usurpation d'identité a échoué.

  3. Application wrapper autour stsadm - Je n'ai pas essayé ce encore comme je suis préoccupé par la viabilité de cette approche, il y a sûrement un moyen plus propre que ce

Quelques conseils sur ce serait utile que je ne trouve pas beaucoup là-bas à ce sujet.

Merci

Était-ce utile?

La solution

le problème est que vous ne pouvez pas utiliser RWEP pour créer la collection de sites. RWEP prend la l'identité de la piscine de l'application et le plus probable (si vous avez configuré votre ferme correct) ce compte n'est pas membre du groupe Administrators agricoles - ce qui est nécessaire pour créer la collection de sites. Si vous exécutez le code dans l'admin central, il fonctionnera bien, car il faut l'identité de la piscine app CA qui est admin agricole.

Vous avez donc un certain nombre d'options pour créer cette fonction:

  1. Vous pouvez accorder admin ferme à votre compte de pool d'applications et procéder comme normale - DECONSEILLE
  2. Créer une application web en administration centrale pour créer ces sites - DECONSEILLE, vous ne voulez pas exposer CA à vos utilisateurs
  3. Créer un certain travail du minuteur (en cours d'exécution en tant qu'administrateur de la ferme), puis ajoutez votre « demande de création de collection site » à une liste qui vérifie les emplois de la minuterie. Ensuite, le travail du minuteur crée le site et coll éventuellement lors de sa création envoie un e-mail à l'utilisateur qui a demandé le site coll. Ce sera un léger retard (selon la fréquence des pistes de travail du minuteur) jusqu'à ce que l'utilisateur leur site coll.
  4. Créer un service web en CA ce qui rend le site coll. Ensuite, appelez ce service web à partir de votre code personnalisé.

Je l'ai utilisé les deux dernières approches successfulley.

/ WW

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top