我们使用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);
我们缺少哪些步骤?
答案 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();
}