我正在尝试使用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部件正常加载,但未创建用户。如果您尝试创建一个用户,它会给出一个未知的错误。
在那之后,我尝试自己创建授权表单。下面的代码处理注册事件:
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数据库中创建的。所以,我不能用它的账号登录。有人知道怎么做吗?
谢谢。
发布于 2012-06-06 21:02:45
您应该在代码执行之后询问mcs参数值。它可能会指出未创建用户帐户的原因。MembershipCreateStatus枚举应显示成员资格提供程序未成功保存用户的原因。
发布于 2012-06-07 01:15:50
注册用户时出现未知错误通常意味着发送电子邮件时出错。您可以查看SharePoint的ULS日志以了解更多详细信息。我会检查你的SharePoint发送邮件设置。
如果您可以在FBA UserManagement中看到该用户,则表明该用户已在成员资格数据库中创建。您是否检查过aspnetdb数据库以查看用户是否存在?
您是否可以使用其他FBA用户的帐户登录?如果不是,则可能是您的FBA设置有问题。确保成员资格条目在您的STS和Central Admin web配置中。
发布于 2019-02-09 16:21:39
这可能是一个评论,但我还没有这样做的代表。这是为那些发现这个问题的人准备的,因为他们对所有其他答案感到困惑,只需使用
Membership.CreateUser() 要在支持FBA的SharePoint站点中创建用户,请执行以下操作。
如果您的web应用程序启用了多个身份验证提供程序,则需要使用以下命令指定提供程序:
Membership.Providers[MembershipProvider].CreateUser()要获取MembershipProvider,可以像OP那样将其指定为硬编码字符串,也可以使用以下命令动态获取它:
SPSite.WebApplication.IisSettings[SPUrlZone].FormsClaimsAuthenticationProvider.MembershipProvider()https://stackoverflow.com/questions/10914159
复制相似问题