IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Sharepoint .NET Discussion :

Utiliser le SP context dans une provider hosted app


Sujet :

Développement Sharepoint .NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Utiliser le SP context dans une provider hosted app
    Bonjour à tous !

    Je m'adresse à vous car j'ai une petite question vis-à-vis du développement sous SharePoint.
    je suis en train de développer une application pour récupérer tous les users d'un site et les afficher dans un tableau (un genre de trombinoscope dynamique). Je développe actuellement une application provider hosted et j'ai déja reussi a récupérer mes users grâce au code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if (IsPostBack)
                {
                    sharePointURL = new Uri(Request.QueryString["SPHostUrl"]);
     
                }
     
                ClientContext clientContext = TokenHelper.GetClientContextWithAccessToken(
                            sharePointURL.ToString(), accessToken);
     
                Web web = clientContext.Web;
                clientContext.Load(web);
                clientContext.ExecuteQuery();
     
                siteName = web.Title;
     
                clientContext.Load(web.CurrentUser);
                clientContext.ExecuteQuery();
                currentUser = clientContext.Web.CurrentUser.Title;
    Je peux donc récupérer quelques infos sur mon user, cependant il me manque pas mal de chose comme le numéro de téléphone par exemple. En fouillant sur le Web j'ai découvert que je pouvais récupérer plus d'info avec la librairie Microsoft.SharePoint et la classe SPContext. Cependant sur ce projet j'utilise Microsoft.sharepoint.client, donc pas de SPContext disponible.

    J'aimerai donc savoir si il existe un moyen d’accéder à l'active directory pour récupérer toutes mes infos.

    En l’attente d'une réponse, M.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    Bonjour

    Microsoft.SharePoint et Microsoft.SharePoint.Client sont deux namespaces qui se ressemblent de loin mais sont tres differents car independants, et ils repondent a des besoins specifiques.
    Le premier est utilisable depuis une appli executee uniquement sur un serveur SharePoint (SSOM). Le second est utilisable, redistribuable partout et utilise un webservice pour interagir avec SharePoint (CSOM).

    Je pense que votre approche a besoin de plus de reflexion, notamment par rapport a votre besoin qui est de "recuperer tous les users d'un site".
    Le bout code que vous avez presente ne permet de recuperer que l'utilisateur actif (connecte). Et avec cette methode je vous l'accorde on n'a acces qu'a tres peu d'infos sur l'utilisateur.

    Essayez de decouper le probleme en deux parties:

    1. Recuperation de tous les noms de comptes utilisateurs d'un site
    C'est moins trivial qu'il n'y parait, notamment dans le cas ou vous utilisez des groupes de securite AD pour gerer vos permissions (nesting gere cote AD).
    Une approche simpliste consiste a attaquer la liste SiteUserInfoList qui contient les noms de compte et certaines infos des utilisateurs du site.

    2. Recuperation des donnees souhaitees par utilisateur:
    En admettant que vous vouliez des infos plus pertinentes que le nom ou l'email de chaque utilisateur, il faudra aller piocher les donnees depuis un annuaire (AD) ou une base de donnees dediee.
    SharePoint a son propre service dedie (UserProfiles) qui est dans la plupart des cas synchronise depuis l'AD vers une base de donnees SQL, et gere des informations qui ne sont pas forcement stockees dans l'AD.
    Si votre ferme SharePoint implemente ce service et les proprietes desirees sont bien remplies, pour l'utiliser depuis votre appli regardez un peu plus la classe PeopleManager de l'API SharePoint CSOM.
    Sinon il faudra requeter l'AD directement en LDAP avec la classe DirectorySearcher du framework .net

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    merci de votre réponse !

Discussions similaires

  1. Utiliser un contexte dans une routine
    Par mimy17 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 26/01/2010, 10h35
  2. utilisation de fonction membre dans une autre
    Par tcharles dans le forum C++
    Réponses: 4
    Dernier message: 14/12/2005, 17h19
  3. Pour utiliser MFC et directX9 dans une fenetre dialogue
    Par Mathieu008_67 dans le forum DirectX
    Réponses: 2
    Dernier message: 17/11/2005, 19h09
  4. [debutant] Utilisation de l'operateur = dans une classe
    Par Battosaiii dans le forum Débuter
    Réponses: 8
    Dernier message: 10/11/2005, 23h01
  5. Réponses: 4
    Dernier message: 26/05/2005, 17h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo