Question

J'ai un formulaire InfoPath que les besoins de remplissage pour spécifier personnes. Un flux de travail assigne des tâches à plus tard ces personnes. Ce que je suis à la recherche est un sélecteur de personnes comme ce que SharePoint a pour champs d'utilisateur, mais que je peux utiliser dans InfoPath. Je l'ai déjà conçu un formulaire pour faire où la charge peut mettre un nom ou e-mail et le formulaire liste des résultats du groupe site.allusers.

Le problème est, si la personne qui doit être ajouté dans le formulaire n'a jamais accédé à cette collection particulière du site avant. Leur compte ne va pas figurer dans la liste des AllUsers.

Où dans le modèle d'objet puis-je rechercher un utilisateur qui est capable d'authentifier avec SharePoint?

Était-ce utile?

La solution

Pourquoi ne pas simplement utiliser l'un OTB dans InfoPath et le configurer pour pointer vers votre environnement SharePoint?

http : //www.sharepointassist.com/2009/02/27/adding-a-contact-selectorpeople-picker-to-an-infopath-form/

Si votre intégration en cours d'exécution MOSS avec AD, il doit récupérer automatiquement tout le monde qui est dans votre domaine si synch AD est activée.

Autres conseils

Je pense que le problème est que même si vous trouvez une liste d'utilisateurs, les flux de travail ne déclenchent aucune action si les utilisateurs n'existent pas dans la liste des informations utilisateur.

Si les utilisateurs n'existent pas dans la liste des informations utilisateur, vous ne serez pas en mesure de les trouver via le modèle d'objet SharePoint parce qu'ils n'existent pas dans SharePoint. Vous devrez les trouver d'une autre manière.

Donc, fondamentalement, cela dépend de la façon dont l'authentification est configuré sur votre serveur SharePoint:

Si vous utilisez FBA, alors les utilisateurs qui peuvent authentifier avec SharePoint doit exister dans un endroit de base de données SQL. Membership.Provider vous donnera un crochet sur votre fournisseur d'appartenances FBA (que ce soit un autre SqlMembershipProvider ou quelque chose). Vous pouvez ensuite utiliser des méthodes telles que

Membership.Provider.GetUser(username)

pour voir si un utilisateur existe. Vous pouvez également boucle à travers vos utilisateurs ou de trouver tous les noms d'utilisateur existants que vous pouvez ensuite afficher dans votre sélecteur de personnes.

Si vous utilisez l'authentification Windows, vous devrez regarder dans votre AD pour trouver les utilisateurs potentiels. DirectoryEntry objet est ce que vous aurez besoin. J'imagine que seuls les utilisateurs d'un certain groupe AD peut accéder à SharePoint? Si oui, alors isoler ce groupe avec l'objet DirectoryEntry, boucle à travers les utilisateurs et vous aurez votre source de données pour le sélecteur de personnes.

Comme je l'ai dit plus haut que, soit la méthode vous donnera les utilisateurs possibles, mais il ne fera pas le travail de flux de travail si les utilisateurs sont pas connectés. Workflows ne fonctionnera correctement avec les utilisateurs qui existent dans la liste Informations utilisateur .

Quand quelqu'un choisit un utilisateur qui n'existe pas dans SharePoint, vous devrez probablement créer via le code. Un moyen sûr de le faire est avec le SPWeb.EnsureUser .

  

vérifie si la connexion spécifiée   nom appartient à un utilisateur valide du   site Web, et si le nom de connexion ne   existe pas déjà, ajoute au Web   site.site.

Alors, vraiment, pour répondre à votre question, nulle part. Vous avez besoin de les chercher où ils pourraient être en venir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top