【问题标题】:Adding FBA User to Sharepoint UserInfo list将 FBA 用户添加到 Sharepoint UserInfo 列表
【发布时间】:2011-05-22 06:36:26
【问题描述】:

我们正在使用 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);

有没有我们遗漏的步骤?

【问题讨论】:

    标签: c# sharepoint-2007 fba


    【解决方案1】:

    我能够通过创建在 Sharepoint Server 上运行的 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();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 2010-10-22
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      相关资源
      最近更新 更多