首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sharepoint 2010。使用FBA创建用户

Sharepoint 2010。使用FBA创建用户
EN

Stack Overflow用户
提问于 2012-06-06 20:23:25
回答 3查看 3.2K关注 0票数 0

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

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

在那之后,我尝试自己创建授权表单。下面的代码处理注册事件:

代码语言:javascript
复制
    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数据库中创建的。所以,我不能用它的账号登录。有人知道怎么做吗?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-06-06 21:02:45

您应该在代码执行之后询问mcs参数值。它可能会指出未创建用户帐户的原因。MembershipCreateStatus枚举应显示成员资格提供程序未成功保存用户的原因。

票数 0
EN

Stack Overflow用户

发布于 2012-06-07 01:15:50

注册用户时出现未知错误通常意味着发送电子邮件时出错。您可以查看SharePoint的ULS日志以了解更多详细信息。我会检查你的SharePoint发送邮件设置。

如果您可以在FBA UserManagement中看到该用户,则表明该用户已在成员资格数据库中创建。您是否检查过aspnetdb数据库以查看用户是否存在?

您是否可以使用其他FBA用户的帐户登录?如果不是,则可能是您的FBA设置有问题。确保成员资格条目在您的STS和Central Admin web配置中。

票数 0
EN

Stack Overflow用户

发布于 2019-02-09 16:21:39

这可能是一个评论,但我还没有这样做的代表。这是为那些发现这个问题的人准备的,因为他们对所有其他答案感到困惑,只需使用

代码语言:javascript
复制
Membership.CreateUser() 

要在支持FBA的SharePoint站点中创建用户,请执行以下操作。

如果您的web应用程序启用了多个身份验证提供程序,则需要使用以下命令指定提供程序:

代码语言:javascript
复制
Membership.Providers[MembershipProvider].CreateUser()

要获取MembershipProvider,可以像OP那样将其指定为硬编码字符串,也可以使用以下命令动态获取它:

代码语言:javascript
复制
SPSite.WebApplication.IisSettings[SPUrlZone].FormsClaimsAuthenticationProvider.MembershipProvider()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10914159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档