Domanda

Ho uno strano problema per la creazione di siti personali a livello di programmazione.Come un sacco di persone che conoscono il metodo CreatePersonalSite di UserProfile classe.Il mio scenario è quando un utente cliccando sul pulsante verrà automaticamente creare il mio sito con il codice.

Il problema è che sembra essere impossibile.Infatti il CreatePersonalSite sembra essere dedicata ad applicazioni di amministrazione che ha accesso al sito personale database di contenuti come dbowner.Quando provo a farlo con il contesto dell'utente corrente che cliccando su un pulsante, ho un accesso negato da sql server mi dice che l'account del servizio di connessione a mysite content DB non può accedere.Che è normale dato mysite applicazione web è in esecuzione con un altro account del pool di applicazioni che il sito in cui l'utente fa clic sul pulsante.

Quindi la mia domanda è: come posso fare per creare un sito personale connesso come utente normale su un altra applicazione web di mysite uno?Ho pensato di creare un web richiesta al mysitehost sito di raccolta + "/_layouts/mysite.aspx", ma questo molto sporco.Altro che posso dare dbowner l'accesso al contenuto del sito db per l'account del pool di applicazioni web in cui l'utente ha fatto clic sul pulsante...ma è sicuro e può essere fatto senza problemi?

Grazie.

È stato utile?

Soluzione

In modo che si desidera essere avviato, ma non come parte del processo predefinito che è in atto da viaggio a /_layouts/mysite.pagina aspx?

Mi sarebbe probabilmente utilizzare il pulsante per redict loro per la fornitura pagina che naturalmente includono controlli per assicurarsi che il sito non esiste già.Se non, e si vuole veramente fare qualcosa di personalizzato, è possibile utilizzare il runwithelevatedprivileges opzione che verrà eseguito con l'account utilizzato per il pool di applicazioni. http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

Generalmente nei casi in cui ho avuto a disposizione i siti a livello di programmazione sono stato fatto in massa, e da un utente amministrativo.Mi sarebbe probabilmente utilizzare PowerShell in questo caso.

Altri suggerimenti

Si può controllare e verificare se altri utenti possono sfogliare "Su di Me" pagina del sito personale creato per l'applicazione di console a livello di programmazione.

Si noti inoltre che in questo scenario, l'utente sitopersonale che è stato creato programtaically, di un particolare utente non hanno visitato la sua/il suo sito personale dalla creazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top