2010-12-08 21 views
1

Nous ajoutons avec succès un nouvel utilisateur à notre fournisseur d'authentification basé sur les formulaires en utilisant la classe Membership en C#. Nous sommes en mesure de se connecter à certains 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.Ajout d'un utilisateur FBA à la liste ShareIn UserInfo

On dirait que nous devons ajouter un enregistrement UserInfo dans la base de données WSS_Content_ *. Nous avons donc référencé le service Web people.asmx sur notre Sharepoint. Après avoir essayé de créer UserInfo à l'aide de la méthode suivante, la méthode renvoie un objet PrincipalInfo non résolu (UserInfoID est -1, IsResolved est false, 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 étapes qui nous manquent?

Répondre

1

J'ai réussi à résoudre le problème en créant un service Web fonctionnant sur Sharepoint Server. Les deux méthodes suivantes sont requises 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(); 
    }