首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Membership.CreateUser不断抛出“InvalidAnswer”

Membership.CreateUser不断抛出“InvalidAnswer”
EN

Stack Overflow用户
提问于 2014-01-09 07:22:53
回答 1查看 626关注 0票数 3

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

代码语言:javascript
复制
    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仍然存在:

代码语言:javascript
复制
fxSMP.CreateUser(userName, passWord, eMail, null, null, true, null, out status);

我甚至尝试将空字符串传递给问答参数:

代码语言:javascript
复制
string pwQuestion = "";
string pwAnswer = "";

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

但还是什么都没有。我能做些什么才能让这件事成功?

编辑:我已经在互联网上做了更多的工作,似乎有一个过载的方法,你只能输入一个UserName,密码和电子邮件。为什么这种重载在我的SqlMembershipProvider实例中是不可用的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-09 07:32:02

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

代码语言:javascript
复制
System.Web.Security.Membership.CreateUser(string username, string password, string email)

编辑

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

顺便问一下,看看这个MSDN文档

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21014003

复制
相关文章

相似问题

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