2008-12-19 6 views
3

Nous utilisons Sharepoint comme CMS pour nos pages Web au travail. Je sais comment créer des contrôles qui peuvent être visibles si vous êtes connecté dans SharePoint avec:Comment savoir si vous vous êtes connecté à une page Web Sharepoint?

< Sharepoint: SPSecurityTrimmedControl ID = " SPSecurityTrimmedControl1 " runat = " serveur " PermissionsString = " AddAndCustomizePages " > < br/>
< Sharepoint: CssLink ID = " CssLink1 " runat = " serveur "/> < br/>
</Sharepoint: SPSecurityTrimmedControl >

Mais je veux savoir comment rendre les contrôles visibles (ou peu importe) par programme en fonction des permissions.

Je ne peux pas utiliser les méthodes pour Windows .NET sous forme d'authentification comme:

 if (!(HttpContext.Current.User == null) && HttpContext.Current.User.Identity.IsAuthenticated){} 

parce que nous utilisons ce pour les utilisateurs anonymes qui a un autre type de journal dans

Pouvez-vous fournir un code.? Je sais que cela doit être quelque chose comme vérifier le SPContext.Current.FormContext.

Répondre

4

Comment les utilisateurs sont-ils authentifiés? Avec l'authentification par formulaire ou Windows/répertoire actif?

Si répertoire actif, alors je pense que dans ce cas, vous devrez peut-être obtenir une référence à l'actuel SPWeb, puis faire web.CurrentUser.ID. Cela peut être nul lorsque vous êtes anonyme. Sinon, essayez web.SiteUsers.GetByID (web.CurrentUser.ID) et voyez ce que vous obtenez.

+0

Ils sont authentifiées par l'administration qui est liée Sharepoint à active Directory. la chose Il y a une API Sharepoint pour faire ces choses mais je n'ai pas eu le temps de regarder cette partie. – netadictos

+0

Je pense que dans ce cas, vous devrez peut-être obtenir une référence au SPWeb actuel, puis faire web.CurrentUser.ID. Cela peut être nul lorsque vous êtes anonyme. Sinon, essayez web.SiteUsers.GetByID (web.CurrentUser.ID) et voyez ce que vous obtenez. – strongopinions

+0

Pourriez-vous mettre votre commentaire dans votre réponse pour que je puisse voter? J'ai finalement vérifié SPContext.Current.Web.CurrentUser n'est pas null – netadictos

0

Bien que je ne l'ai pas testé, j'imagine que la propriété LoginName de l'objet SPUser sera vide, ou lancera une exception.

... bien sûr, son jamais prudent de présumer quoi que ce soit lorsqu'ils traitent w/SharePoint OM :(

1

DoesUserHavePermissions

Vous pouvez utiliser cette méthode sur le web en cours pour vérifier si l'utilisateur a une autorisation spécifique.

Je suppose que vos utilisateurs authentifiés ont une autorisation de vérifier que la foule anonyme est refusée.

Questions connexes