我一直在尝试使用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
?实例中似乎没有这种重载
答案 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