SharePoint 2010的使用FBA创建用户

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SharePoint 2010的使用FBA创建用户相关的知识,希望对你有一定的参考价值。

我试图创建用户在SharePoint 2010中使用FBA(基于表单的身份验证)。我跟着本文中的步骤配置FBA:http://donalconlon.wordpress.com/2010/02/23/configuring-forms-base-authentication-for-sharepoint-2010-using-iis7/

然后我上传的FBA包http://sharepoint2010fba.codeplex.com/。 Web部件正常加载,但不创建的用户。如果您尝试创建一个用户它提供了一个未知的错误。

从那以后,我尝试自己创造授权书。下面的代码处理注册事件:

    MembershipCreateStatus mcs = new MembershipCreateStatus();
    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
       using (SPSite site = new SPSite("http://makovkasp:30763/"))
       using (SPWeb spWeb = site.OpenWeb())
       { 
          try
          {

             MembershipUser membershipUser =
Membership.Providers["FBAMembershipProvider"].CreateUser(txtLogin.Text,
                                   txtPassword.Text,
                                   txtEmail.Text,
                                   txtSecretQuestion.Text,
                                   txtAnswer.Text, true, null, out mcs);

             spWeb.AllowUnsafeUpdates = true;
             SPUser spUser = spWeb.EnsureUser(txtLogin.Text);
             SPGroup spGroup = spWeb.Groups[2];
             spGroup.AddUser(spUser);
             spGroup.Update();

          }
          catch (Exception ex)
          {
             System.Console.WriteLine(ex.ToString());
          }
       }
    });

执行该代码后,用户创建在SharePoint(我可以看到它在FBA UserManagement)。但它不是在FBA数据库中创建。所以,我无法登录其下的帐户。任何人都知道该怎么办呢?

谢谢。

答案

在执行你的代码后,你应该询问mcs参数值。这可能说明为什么没有创建用户帐户。该MembershipCreateStatus枚举应该显示为什么用户不是由成员提供成功保存。

另一答案

登记用户时未知错误一般是指有一个错误发送电子邮件。您可以检查的SharePoint ULS日志了解更多详情。我会检查您的SharePoint传出邮件设置。

如果你能看到FBA UserManagement用户 - 那么它已经在会员数据库中创建。你已经检查了aspnetdb的数据库,以查看该用户是否存在?

你可以与其他FBA用户的帐户登录?如果不是那么有可能是您的FBA设置有问题。确保成员项在您的STS和中央管理的网络CONFIGS。

另一答案

这也许应该是一个评论,但我没有代表做到这一点呢。这是任何人谁发现了这个问题,因为他们感到困惑的所有其他的答案,只是说使用

Membership.CreateUser() 

在启用FBA-SharePoint网站创建用户。

当你启用了多个身份验证提供一个Web应用程序,您需要使用指定供应商:

Membership.Providers[MembershipProvider].CreateUser()

要获得MembershipProvider,你可以指定它作为一个硬编码字符串如OP一样,或者你可以使用动态获取它:

SPSite.WebApplication.IisSettings[SPUrlZone].FormsClaimsAuthenticationProvider.MembershipProvider()

以上是关于SharePoint 2010的使用FBA创建用户的主要内容,如果未能解决你的问题,请参考以下文章

Sharepoint 2016 配置FBA 创建Membership数据库

Sharepoint 2016 配置FBA添加用户到Membership数据库

SharePoint 2013 同步FBA认证用户

Sharepoint 2016 配置FBA 编辑Web,config文件

从事件接收器重定向Sharepoint 2010(创建站点后)

SharePoint 2019 无法验证安全令牌用户名和密码