Membership.CreateUser不断抛出'InvalidAnswer'

时间:2014-01-09 07:22:53

标签: asp.net membership-provider

我一直在尝试使用CreateUser方法将用户添加到我的数据库中。我想要的一件事是密码问题和答案不是必需的,所以我在Web.config中有这个:

    membership>
                <providers>
                    <clear/>
                    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" 
connectionStringName="CBCFXConnString" 
enablePasswordRetrieval="false" 
enablePasswordReset="true" 
requiresQuestionAndAnswer="false" 
requiresUniqueEmail="false" 
maxInvalidPasswordAttempts="5" 
minRequiredPasswordLength="8" 
minRequiredNonalphanumericCharacters="0" 
passwordAttemptWindow="10" 
applicationName="CBCFX"/>

如您所见,我已将requiresQuestionAndAnswer设置为false。自从我开始编程以来,这个设置一直在我的配置中,当我尝试使用这一行添加用户时,我只是傻眼了为什么InvalidAnswer仍然存在:

fxSMP.CreateUser(userName, passWord, eMail, null, null, true, null, out status);

我甚至尝试将空字符串传递给问题并回答论点:

string pwQuestion = "";
string pwAnswer = "";

fxSMP.CreateUser(userName, passWord, eMail, pwQuestion, pwAnswer, true, null, out status);

但仍然没有。我能做些什么才能做到这一点?

编辑:我已经在互联网上走了一段路,而且似乎有一种重载方法,你只能输入用户名,密码和电子邮件。为什么我的SqlMembershipProvider

实例中似乎没有这种重载

1 个答案:

答案 0 :(得分:3)

在您的问题中,我无法看到您如何在membership文件中声明web.config元素,但请确保设置defaultProvider属性...以防万一。另外,我建议您使用CreateUser方法的不同重载...

System.Web.Security.Membership.CreateUser(string username, string password, string email)

修改

现在,由于您使用的是SqlMembershipProvider,因此无法使用此重载。为什么?首先,因为您不应该直接在客户端代码上调用此方法。您应该使用Membership类。如果您在defaultProvider文件中设置membership元素的web.config并将requiresQuestionAndAnswer设置为false,那么您不应该遇到任何问题。< / p>

顺便说一句,请查看此MSDN Documentation