Exibindo o atual usuário do SharePoint autenticado de um asp.net página Web Part do Visualizador

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

Pergunta

Estou criando uma página asp.net independente que precisa ser incorporado em um site do SharePoint usando a Web Part Page Viewer. A página asp.net é publicado para o mesmo servidor em uma porta diferente, dando-me a URL para incorporação.

A exigência é que depois de um usuário é autenticado usando a autenticação do Sharepoint, eles navegam para uma página que contém a peça asp.net web para mais opções.

O que eu preciso fazer desta página asp.net é consulta Sharepoint para o usuário atualmente autenticado, em seguida, exibir isso na página do código asp.net.

Esta tudo bem funciona quando eu depurar o aplicativo do VS, mas quando publicado e exibido embora Sharepoint, eu sempre chegar NULL como o usuário.

Todas as sugestões sobre a melhor maneira de chegar a este trabalho seria muito apreciado.

Foi útil?

Solução

Se você quiser recuperar o usuário autenticado no momento a partir do contexto do SharePoint, você precisa manter-se dentro do contexto do SharePoint. Este meio de hospedagem sua aplicação web personalizado dentro do SharePoint (veja http://msdn.microsoft.com/en-us/library/cc297200.aspx ). Em seguida, a partir de sua referência aplicativo personalizado Microsoft.SharePoint e usar o objeto SPContext para recuperar o nome de usuário. Por exemplo:

SPContext.Current.Web.CurrentUser.LoginName

Você ainda pode usar o Visualizador de Páginas Web Part para referenciar o URL do site, agora localizado dentro do contexto do SharePoint.

Outras dicas

montes Obrigado pelas respostas!

Acontece que, enquanto a página asp.net está usando o mesmo URL e porta como o site SharePoint, autenticação funciona em ambos os locais.

A solução é usar um dentro Virtual Directory do site do SharePoint e instalar na página asp.net lá.

Quando se trabalha em depuração, é que sendo usado em SharePoint?

Sua página eo site pode Sharepoint muito bem ser em servidores diferentes na medida em que a autenticação está em causa - a fim de obter as informações sobre o que você pode precisar passá-lo através da QueryString do webpart se você pode - ou você talvez seja necessário fazer o seu próprio webpart para fazer isso (basta colocar um IFRAME na parte com o conjunto src a sua página com o QueryString passar o nome de usuário).

Parece que isso seria um problema de segurança se você usar o nome para qualquer coisa embora -. Se você está apenas exibi-lo, então provavelmente é bem

Se você realmente precisa ser autenticado, pode ser necessário adicionar autenticação no web.config do site que hospeda sua página independente.

edit: Eu acho que você teria mais sorte colocando sua página na mesma porta e servidor como SharePoint

.

Eu suspeito que você terá um tempo difícil especificamente consultando SharePoint para o nome de usuário autenticado atualmente. Eu não consigo pensar em uma maneira de acessar facilmente o contexto SharePoint a partir de um aplicativo Web separado como você está descrevendo.

Eu não sei que tipo de esquema de autenticação que você está usando, mas você pode querer considerar o uso de Kerberos, como eu descobri que ele pode fazer esses tipos de cenários um pouco mais fácil, permitindo a delegação e passar credenciais de aplicação para aplicação ou servidor para servidor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top