Ces derniers jours j’ai travaillé sur une application auto-hébergée pour SharePoint (Office 365 en fait)
J’avais besoin de fournir un accès anonyme à une des pages sans que les clients de l’application aient à accorder l’accès anonyme à leur site SharePoint. Mais j’avais aussi besoin de lire des propriétés sur le web de l’app (app web, celui qui est provisionné lorsqu’on déploie une app)
J’ai beaucoup cherché mais j’ai fini par trouver la solution :
//uri de l’app web, vous pouvez le passer par query string par exemple
var targetUrl = new Uri("https://<tenantname>-<appinstallationid>.sharepoint.com/<appname>");
var token = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, targetUrl.Authority, TokenHelper.GetRealmFromTargetUrl(targetUrl));
using (var ctx = TokenHelper.GetClientContextWithAccessToken(targetUrl.ToString(), token.AccessToken))
Vous devez aussi accorder le droit à l’application de s’exécuter de manière autonome depuis le manifeste
J’espère que ça va vous faire gagner du temps si vous tombez sur la même problématique.