我们将使用C#中的会员类成功地将新用户添加到基于表格的身份验证提供商中。我们能够登录一些公共网站,但是在尝试在他没有出现的People Picker中搜索新创建的用户之后。

似乎我们必须在WSS_CONTENT_*数据库中添加UserInfo记录。因此,我们引用了People.ASMX Web服务在我们的SharePoint上运行。尝试使用以下方法创建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);

我们缺少任何步骤吗?

有帮助吗?

解决方案

我能够通过在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();
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top