Obtenez les éléments de la liste même si l'utilisateur n'a pas accès à ces éléments
-
09-12-2019 - |
Question
Existe-t-il un moyen d'obtenir des éléments d'une liste même si l'utilisateur actuel n'y a pas réellement accès ? SPSecurity.RunWithElevatedPrivileges
ça n'a pas l'air de fonctionner !
J'ai un cas particulier dans lequel j'ai besoin d'accéder à certains éléments d'une liste, éléments qui respectent un certain filtre.Le filtre peut renvoyer des éléments appartenant à d'autres utilisateurs et ceux-ci ne sont pas renvoyés.
Mais j'en ai besoin pour collecter des informations et les afficher à l'utilisateur !L'utilisateur ne verra pas les éléments auxquels il n'a pas accès, mais les informations que j'affiche doivent en tenir compte.
Est-il possible de le faire sans définir/supprimer des autorisations par programme ?
La solution
Bien, SPSecurity.RunWithElevatedPrivileges
devrait faire l'affaire.Assurez-vous de créer un nouveau SPSite/SPWeb dans le bloc de code élevé :
var siteId = SPContext.Current.Site.ID;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteId))
{
//do things on the new site object
}
});