将FBA用户添加到Sharepoint UserInfo列表

时间:2010-12-08 14:29:40

标签: c# sharepoint-2007 fba

我们使用C#中的Membership类成功地向基于表单的身份验证提供程序添加了新用户。我们可以登录一些公共站点,但在尝试搜索人员选择器中的新创建用户后,他没有显示。

似乎我们必须在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 个答案:

答案 0 :(得分: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();
    }