2010-12-08 96 views
1

我们正在使用C#中的Membership类成功将新用户添加到基于表单的身份验证提供程序。我们可以登录一些公共网站,但尝试在人员选择器中搜索新创建的用户后,他没有显示出来。我们不得不在WSS_Content_ *数据库中添加一个UserInfo记录。所以我们引用了Sharepoint上运行的people.asmx Web Service。尝试使用以下方法创建UserInfo后,该方法返回未解析的PrincipalInfo对象(UserInfoID为-1,IsResolved为false等)。将FBA用户添加到Sharepoint UserInfo列表

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服务器上运行的Web服务来解决该问题。创建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(); 
    } 
相关问题