Pergunta

I do have a client context ClientContext context and current user:

var currentUser = context.Web.CurrentUser;

context.Load(currentUser);

context.ExecuteQuery();

I can also use rest API.

Foi útil?

Solução

Solved this using Graph API rest request:

https://graph.windows.net/me/memberOf?api-version=1.6

Documentation: https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/users-operations

Outras dicas

I use this for SharePoint Online:

_clientContext.Load(_clientContext.Site, s => s.Url);
_clientContext.ExecuteQueryRetry();
var tenantUrl = $"https://{new Uri(_clientContext.Url).Host.Replace(".sharepoint.com", "-admin.sharepoint.com")}";
var tenantCtx = new ClientContext(tenantUrl);
tenantCtx.Credentials = _clientContext.Credentials;
var tenant = new Tenant(tenantCtx);
var props = tenant.GetSitePropertiesByUrl(_clientContext.Site.Url, false);
tenant.Context.Load(props);
tenant.Context.ExecuteQuery(); // will throw 401 exception here, if current user is not tenant admin

Try this:

if (clientcontext.Web.CurrentUser.IsSiteAdmin) 
{
   Your Code
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top