Frage

Wir fügen erfolgreich einen neuen Benutzer unsere formularbasierte Authentifizierungsanbieter die Membership-Klasse in C #. Wir sind in der Lage, einige öffentliche Websites einzuloggen, aber nach dem Versuch, für die neu erstellte Benutzer in den Menschen suchen Picker er nicht zu sehen.

Es scheint, als ob wir einen Userinfo Datensatz in der WSS_Content_ * Datenbank hinzufügen müssen. So verweisen wir die people.asmx Web Service auf unserer Sharepoint ausgeführt wird. Nach dem Versuch, die Userinfo mit dem folgende Verfahren wird die Methode gibt ein nicht gelöst PrincipalInfo Objekt (UserInfoID -1 ist, IsResolved falsch ist, usw.).

erstellen
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);

Gibt es irgendwelche Schritte, die wir fehlen?

War es hilfreich?

Lösung

Ich war in der Lage, das Problem zu lösen, indem ein Web-Service läuft auf dem Sharepoint-Server zu erstellen. Die folgenden beiden Methoden sind erforderlich, um eine Userinfo Datensatz zu erstellen:

    [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();
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top