2009-10-09 10 views
0

Je dois déterminer les sites et les sites Web auxquels un utilisateur donné peut accéder dans une application Web SharePoint via l'API SharePoint. Notez que l'utilisateur spécifié est différent de l'utilisateur actuel qui appelle le code. Au début, je pensais utiliser le PortalSiteMapProvider, mais cela n'offre pas une option pour changer le contexte de l'utilisateur dans lequel il est construit. Quelqu'un peut-il offrir des alternatives à cela?Déterminer les sites SharePoint et les sites Web qu'un utilisateur spécifié peut accéder par programme?

Merci, MagicAndi

+2

Réalisez que vous avez besoin d'utiliser l'API, mais vous aimeriez peut-être voir l'outil d'autorisation dans le SP Administration Toolkit: http://blog.beckybertram.com/Lists/Posts/Post.aspx?ID=56 –

+0

Aussi SharePoint SUSHI pourrait être utile (open source): http://www.codeplex.com/sushi –

Répondre

1

pas la solution la plus efficace à ce problème, mais vous pouvez parcourir toutes les collections de sites/bandes dans l'application Web, puis appelez :

web.DoesUserHavePermissions(userID, SPBasePermissions.Open) 

où « web » est un objet SPWeb et est userID « DOMAIN \ user.name » de l'utilisateur que vous vérifiez les autorisations d'accès pour. Faites-le dans un RWEP et assurez-vous de disposer correctement de vos objets SPSite/SPWeb.

Questions connexes