Affichage de l'utilisateur SharePoint authentifié actuel authentifié à partir d'un composant WebPart asp.net Page Viewer

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

Question

Je crée une page asp.net autonome qui doit être intégrée à un site SharePoint à l'aide du composant WebPart Visionneuse de pages. La page asp.net est publiée sur le même serveur sur un port différent, ce qui me donne l'adresse URL à intégrer.

La condition requise est qu’après l’authentification d’un utilisateur utilisant l’authentification Sharepoint, il accède à une page contenant le composant WebPart asp.net pour davantage d’options.

Ce que je dois faire depuis cette page asp.net, c’est de demander à Sharepoint le nom d’utilisateur actuellement authentifié, puis de l’afficher sur la page à partir du code asp.net.

Tout cela fonctionne bien lorsque je débogue l'application depuis VS, mais lorsqu'il est publié et affiché via Sharepoint, j'obtiens toujours NULL en tant qu'utilisateur.

Toute suggestion sur la meilleure façon de faire fonctionner cela serait grandement appréciée.

Était-ce utile?

La solution

Si vous souhaitez extraire l'utilisateur actuellement authentifié du contexte SharePoint, vous devez rester dans le contexte SharePoint. Cela signifie qu’il faut héberger votre application Web personnalisée dans SharePoint (voir http://msdn.microsoft.com/en-us/library/cc297200.aspx ). Ensuite, à partir de votre application personnalisée, référencez Microsoft.SharePoint et utilisez l'objet SPContext pour récupérer le nom d'utilisateur. Par exemple:

SPContext.Current.Web.CurrentUser.LoginName

Vous pouvez toujours utiliser le composant WebPart Visionneuse de pages pour référencer l'URL du site, situé à présent dans le contexte SharePoint.

Autres conseils

Merci beaucoup pour les réponses!

Il s'avère que tant que la page asp.net utilise les mêmes URL et port que le site Sharepoint, l'authentification fonctionne sur les deux sites.

La solution consiste à utiliser un répertoire virtuel à l'intérieur du site SharePoint et à y installer la page asp.net.

Quand cela fonctionne dans le débogage, est-ce utilisé dans SharePoint?

Votre page et le site Sharepoint peuvent également se trouver sur des serveurs différents en ce qui concerne l'authentification. Pour obtenir les informations, vous devrez peut-être les transmettre par le biais de QueryString à partir du Webpart si vous le pouvez - ou vous Pour cela, vous devrez peut-être créer votre propre Webpart (insérez simplement un IFRAME dans la partie avec le src défini sur votre page avec le QueryString transmettant le nom d'utilisateur).

Il semble que ce soit un problème de sécurité si vous utilisez le nom pour quoi que ce soit - si vous ne le affichez que si, alors c'est probablement bien.

Si vous devez réellement vous authentifier, vous devrez peut-être ajouter une authentification dans le fichier Web.config du site hébergeant votre page autonome.

modifier: je pense que vous auriez plus de chance de placer votre page sur le même port et le même serveur que SharePoint.

Je suppose que vous aurez du mal à interroger spécifiquement SharePoint pour le nom d'utilisateur actuellement authentifié. Je ne vois pas comment accéder facilement au contexte SharePoint à partir d'une application Web distincte, comme vous le décrivez.

Je ne sais pas quel type de schéma d’authentification vous utilisez, mais vous pouvez envisager d’utiliser Kerberos, car j’ai constaté qu’il pouvait faciliter un peu ce type de scénario en permettant la délégation et la transmission des informations d’identité de application à application ou serveur à serveur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top