Question

Nous ajoutons avec succès un nouvel utilisateur à nos formulaires d'authentification fournisseur en utilisant la classe des membres en C #. Nous sommes en mesure de vous connecter des sites publics, mais après avoir essayé de rechercher le nouvel utilisateur créé dans le sélecteur de personnes, il ne se présente pas.

On dirait que nous devons ajouter un enregistrement UserInfo dans la WSS_Content_ * Base de données. Nous avons donc référencent people.asmx service Web en cours d'exécution sur notre Sharepoint. Après avoir essayé de créer le UserInfo en utilisant la méthode suivante, la méthode retourne un objet PrincipalInfo pas résolu (UserInfoID est -1, IsResolved est faux, etc.).

peopleservice.People service = new peopleservice.People();
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
string[] users = new string[] { txtCreateEmail.Text };
var result2 = service.ResolvePrincipals(users, brnextranet.SPPrincipalType.User, true);

Y at-il des mesures qui nous manque?

Était-ce utile?

La solution

Je suis en mesure de résoudre le problème en créant un service Web en cours d'exécution sur le serveur Sharepoint. Les deux méthodes suivantes sont nécessaires pour créer un enregistrement UserInfo:

    [WebMethod]
    public void CreateUser(string username)
    {
        SPWeb web = new SPSite(this.ExtranetSite).OpenWeb();

        web.AllUsers.Add(this.MembershipProvider + ":" + username, username, username, "");
        web.EnsureUser(this.MembershipProvider + ":" + username);
    }

    [WebMethod]
    public void DeleteUser(string username)
    {
        SPWeb web = new SPSite(this.ExtranetSite).OpenWeb();

        web.SiteUsers.Remove(this.MembershipProvider + ":" + username);
        web.Update();
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top