Pregunta

Tengo una necesidad de permitir que los administradores no agrícolas que sean capaces de crear colecciones de sitios que utilizan una definición de sitio muy específico. Estas personas no tendrán acceso a la administración central y por lo que requieren una solución personalizada para permitir la creación de estos. He intentado varias soluciones, pero quieren un consenso sobre un enfoque recomendado.

  1. servicio web personalizado - He escrito un servicio web personalizado para realizar esta tarea sin embargo, esto causado grandes dolores de cabeza y, aunque el servicio Web se ejecuta en un grupo de aplicaciones utilizando la misma identidad que el grupo de aplicaciones de SharePoint que no podía conseguir que esto funcione. También forma digerir tenido problemas al tratar de realizar este v ia un servicio web.

  2. Parte Web / Aplicación Página - No se forma a digerir los temas aquí ya que estamos en el contexto de SharePoint, sin embargo he intentado usar RunWithElevatedPrivileges pero aún así obtener un acceso denegado al llamar SPWebbApplication.Sites.Add (), aunque todo SPSite y SPWeb pbjects se están instanciadas en el interior del bloque de código elevada. He tratado de suplantación directa en el nivel de interfaz de usuario y obtener una UnhandledException diciendo que la suplantación ha fallado.

  3. Aplicación envoltura alrededor stsadm -? No he intentado esto todavía que a mí respecta sobre la viabilidad de este enfoque, sin duda hay una manera más limpia que este

Algunas orientaciones sobre esto sería útil ya que no puedo encontrar mucho que hay en esto.

Gracias

¿Fue útil?

Solución

the problem is that you cannot use RWEP to create the site collection. RWEP takes the the identity of the app pool and most likely (if you configured your farm correct) this account is not member of the farm adminstrators group - which is required to create the site collection. If you run the code in central admin it will work though, since it takes the identity of the CA app pool who is farm admin.

So you have a number of options to create this feature:

  1. You can grant farm admin to your app pool account and proceed as normal - NOT RECOMMENDED!
  2. Create a web app in Central admin to create this sites - NOT RECOMMENDED, you do not want to expose CA to your users
  3. Create some timer job (running as farm admin) and then add your "create site collection request" to a list which the timer jobs checks. Then the timer job creates the site coll and eventually when it's created sends an e-mail to the user who requested the site coll. It will be a slight delay (depending on how often the timer job runs) until the user has their site coll.
  4. Create a web service in CA which makes the site coll. Then call this web service from your custom code.

I've used the two last approaches successfulley.

/WW

Licenciado bajo: CC-BY-SA con atribución
scroll top