2010-12-15 88 views
4

Je souhaite vérifier si un utilisateur est un administrateur de collection de sites d'une collection de sites particulière. Quand je passe par les fonctions membres, je vois deux fonctionsComment vérifier les permissions d'un utilisateur avec une collection de sites?

site.CheckForPermissions(SPReusableAcl acl, SPBasePermissions perms) 
site.DoesUserHavePermissions(SPReusableAcl acl, SPBasePermissions perms) 

Mais comment les utiliser? Qu'est-ce que SPReusableAcl? Comment puis-je relier SPUser et SPReusableAcl?

Des idées?

Répondre

8

Connaissez-vous la propriété .isSiteAdmin? Vous pouvez vérifier si l'utilisateur actuel est admin en utilisant

SPContext.Current.Site.RootWeb.CurrentUser.IsSiteAdmin 

Consultez également la collection SPWeb.SiteAdministrators.

En fait il y a quelques bonnes suggestions sur how to check if a user is site collection administrator here.

+0

Il suffit donc de vérifier les autorisations par rapport à RootWeb pour vérifier la collection de sites? – NLV

+1

Eh bien oui et non, si les administrateurs de votre collection de sites sont seulement ajoutés au site, vous ne les trouverez pas sur le RootWeb - vérifiez le lien. Plus facile va pour les collections 'SPWeb.SiteAdministrators' et vérifier si votre utilisateur recherché est là. –