2009-02-24 11 views
0

Bonjour J'utilise l'espace de noms SharePoint pour une partie Web et je rencontre des erreurs d'autorisation lorsque j'essaie d'utiliser le compte système. Est-ce que je peux utiliser un utilisateur défini à la place du compte système?Autorisations WebPart SharePoint

En ce moment, j'ai:

SPUserToken sysToken = SPContext.Current.Site.SystemAccount.UserToken; 
using (SPSite site = new SPSite(_SPSite, sysToken)) 

Je veux être en mesure d'utiliser un compte sur le domaine au lieu du compte système, merci pour tous les conseils.

Répondre

1

Vous pouvez utiliser le SPUserCollection

SPContext.Current.Site.RootWeb.AllUsers 

pour obtenir tous les utilisateurs sur le site, et obtenir le SPUser à partir de là. Une fois que vous avez le SPUser vous pouvez obtenir le UserToken.

2

Vous devrez peut-être utiliser RunWithElevatedPermissions pour obtenir l'accès au compte du système de travail, selon le blog suivant:

http://solutionizing.net/2009/01/06/elegant-spsite-elevation/

+0

La question était ' Est-ce que je peux utiliser un utilisateur défini à la place du compte système? –

+0

La question mentionne aussi "Je rencontre des erreurs d'autorisation lorsque j'essaie d'utiliser le compte système", je soulignais une raison possible qui pourrait avoir eu lieu en premier lieu. – mundeep

1

Qu'est-ce que vous essayez de faire? Si vous n'utilisez pas un jeton, le web sera ouvert avec les mêmes autorisations que l'utilisateur actuel

/* runs as user requesting the web part */ 
SPSite site = SPContext.Current.Web.site 

ou vous pouvez envelopper dans les RunWithElevatedPrivileges délégué

/* runs with admin privileges */   
SPSecurity.RunWithElevatedPrivileges(
    delegate() 
    { 
     using (SPSite site = new SPSite(SPContext.Current.Web.Site.Url)) 
     { 
     //do stuff 
     } 
    } 
); 
Questions connexes