Visualizzazione dell'utente di Sharepoint autenticato corrente da una web part visualizzatore di pagine asp.net

StackOverflow https://stackoverflow.com/questions/112818

Domanda

Sto creando una pagina asp.net autonoma che deve essere incorporata in un sito sharepoint utilizzando la web part Visualizzatore pagine. La pagina asp.net è pubblicata sullo stesso server su una porta diversa, dandomi l'URL da incorporare.

Il requisito è che dopo che un utente è stato autenticato usando l'autenticazione Sharepoint, accede a una pagina contenente la web part asp.net per ulteriori opzioni.

Quello che devo fare da questa pagina asp.net è interrogare Sharepoint per il nome utente attualmente autenticato, quindi visualizzarlo sulla pagina dal codice asp.net.

Tutto funziona benissimo quando eseguo il debug dell'applicazione da VS, ma quando pubblicato e visualizzato tramite Sharepoint, ottengo sempre NULL come utente.

Qualunque suggerimento sul modo migliore per farlo funzionare sarebbe molto apprezzato.

È stato utile?

Soluzione

Se si desidera recuperare l'utente attualmente autenticato dal contesto di SharePoint, è necessario rimanere nel contesto di SharePoint. Ciò significa ospitare l'applicazione Web personalizzata in SharePoint (consultare http://msdn.microsoft.com/en-us/library/cc297200.aspx ). Quindi, dal riferimento dell'applicazione personalizzata Microsoft.SharePoint e utilizzare l'oggetto SPContext per recuperare il nome utente. Ad esempio:

SPContext.Current.Web.CurrentUser.LoginName

È ancora possibile utilizzare la web part Visualizzatore pagine per fare riferimento all'URL del sito, ora situato nel contesto di SharePoint.

Altri suggerimenti

Grazie mille per le risposte!

Si scopre che finché la pagina asp.net utilizza lo stesso URL e la stessa porta del sito Sharepoint, l'autenticazione funziona su entrambi i siti.

La soluzione consiste nell'utilizzare una directory virtuale all'interno del sito sharepoint e installare lì la pagina asp.net.

Quando funziona nel debug, viene utilizzato in SharePoint?

La tua pagina e il sito di Sharepoint potrebbero anche trovarsi su server diversi per quanto riguarda l'autenticazione - per ottenere le informazioni su di te potrebbe essere necessario passarle via QueryString dalla webpart, se puoi - oppure potrebbe essere necessario creare la tua webpart per farlo (basta inserire un IFRAME nella parte con lo src impostato sulla tua pagina con QueryString che passa il nome utente).

Sembra che questo sarebbe un problema di sicurezza se usi il nome per qualsiasi cosa - se lo stai solo visualizzando, probabilmente va bene.

Se in realtà è necessario essere autenticati, potrebbe essere necessario aggiungere l'autenticazione nel web.config del sito che ospita la pagina autonoma.

modifica: penso che avrai più fortuna a mettere la tua pagina sulla stessa porta e server di SharePoint.

Sospetto che farai fatica a interrogare specificamente SharePoint per il nome utente attualmente autenticato. Non riesco a pensare a un modo per accedere facilmente al contesto di SharePoint da un'applicazione Web separata come quella che stai descrivendo.

Non so che tipo di schema di autenticazione stai utilizzando, ma potresti prendere in considerazione l'utilizzo di Kerberos, poiché ho scoperto che può rendere un po 'più semplice questo tipo di scenari consentendo la delega e il passaggio di credenziali da da applicazione a applicazione o da server a server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top