Mostrar el usuario de Sharepoint autenticado actual desde un elemento web Visor de páginas asp.net

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

Pregunta

Estoy creando una página asp.net independiente que debe integrarse en un sitio de SharePoint mediante el elemento web Visor de páginas.La página asp.net se publica en el mismo servidor en un puerto diferente, lo que me proporciona la URL para insertar.

El requisito es que después de que un usuario se autentica mediante la autenticación de Sharepoint, navegue a una página que contiene el elemento web asp.net para obtener más opciones.

Lo que debo hacer desde esta página de asp.net es consultar en Sharepoint el nombre de usuario actualmente autenticado y luego mostrarlo en la página desde el código de asp.net.

Todo esto funciona bien cuando depuro la aplicación desde VS, pero cuando la publico y la muestro a través de Sharepoint, siempre obtengo NULL como usuario.

Cualquier sugerencia sobre la mejor manera de hacer que esto funcione será muy apreciada.

¿Fue útil?

Solución

Si desea recuperar el usuario actualmente autenticado del contexto de SharePoint, debe permanecer dentro del contexto de SharePoint.Esto significa alojar su aplicación web personalizada dentro de SharePoint (consulte http://msdn.microsoft.com/en-us/library/cc297200.aspx).Luego, desde su aplicación personalizada, haga referencia a Microsoft.SharePoint y use el objeto SPContext para recuperar el nombre de usuario.Por ejemplo:

SPContext.Current.Web.CurrentUser.LoginName

Aún puede usar el elemento web Visor de páginas para hacer referencia a la URL del sitio, que ahora se encuentra dentro del contexto de SharePoint.

Otros consejos

¡Muchas gracias por las respuestas!

Resulta que siempre que la página asp.net utilice la misma URL y puerto que el sitio de Sharepoint, la autenticación funciona en ambos sitios.

La solución es utilizar un directorio virtual dentro del sitio de SharePoint e instalar allí la página asp.net.

Cuando funciona en depuración, ¿se utiliza en SharePoint?

Su página y el sitio de Sharepoint también podrían estar en servidores diferentes en lo que respecta a la autenticación; para obtener la información, es posible que deba pasarla a través de QueryString desde el elemento web si puede, o puede que necesite hacerlo. cree su propio elemento web para hacer esto (simplemente coloque un IFRAME en la parte con el src configurado en su página con QueryString pasando el nombre de usuario).

Sin embargo, parece que esto sería un problema de seguridad si usa el nombre para cualquier cosa; si solo lo muestra, entonces probablemente esté bien.

Si realmente necesita autenticarse, es posible que deba agregar autenticación en el archivo web.config del sitio que aloja su página independiente.

editar:Creo que tendrías más suerte si colocas tu página en el mismo puerto y servidor que SharePoint.

Sospecho que le resultará difícil consultar específicamente en SharePoint el nombre de usuario actualmente autenticado.No puedo pensar en una manera de acceder fácilmente al contexto de SharePoint desde una aplicación web separada como la que usted describe.

No sé qué tipo de esquema de autenticación está utilizando, pero es posible que desee considerar el uso de Kerberos, ya que descubrí que puede facilitar un poco este tipo de escenarios al permitir la delegación y el paso de credenciales de una aplicación a otra. o de servidor a servidor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top