2010-12-08 14 views
1

C#のMembershipクラスを使用して、新しいユーザーをForms Based Authentication Providerに追加することに成功しました。私たちはいくつかの公開サイトにログインすることができますが、人選機で新しく作成されたユーザーを検索しようとすると、彼は現れません。FBAユーザーをSharepointに追加するUserInfoリスト

WSS_Content_ *データベースにUserInfoレコードを追加する必要があるようです。そこで、Sharepoint上で動作するpeople.asmx Webサービスを参照しました。次のメソッドを使用してUserInfoを作成しようとすると、解決されていないPrincipalInfoオブジェクトが返されます(UserInfoIDは-1、IsResolvedはfalseなど)。

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

手順がありませんか?

答えて

1

Sharepoint Server上で動作するWebサービスを作成することで、この問題を解決できました。 UserInfoレコードを作成するには、次の2つの方法が必要です。

[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(); 
    } 
関連する問題