SqlMembershipProvider.CreateUser 方法(测试已通过)

来源:互联网 发布:post传递数组参数 编辑:程序博客网 时间:2024/05/18 00:21

参数

username

新用户的用户名。

password

新用户的密码。

email

新用户的电子邮件地址。

passwordQuestion

新用户的密码提示问题。

passwordAnswer

新用户的密码提示问题答案。

isApproved

是否允许验证新用户。

providerUserKey

唯一标识 SQL Server 数据库中成员资格用户的 Guid

status

一个 MembershipCreateStatus 值,指示是否成功创建用户。

 

 

返回值

用于新创建用户的 MembershipUser 对象。如果没有创建用户,此方法将返回 空引用(在 Visual Basic 中为 Nothing)。

Membership 类调用此方法来在 ASP.NET 应用程序配置文件中指定的 SQL Server 数据库中添加一个新用户。

新用户由已配置的 ApplicationName 进行标识。

如果 RequiresUniqueEmail 属性设置为 true,并且为 email 参数指定 空引用(在 Visual Basic 中为 Nothing) 或空字符串 (""),则用户创建将失败。如果 RequiresUniqueEmail 属性设置为 true 并且为 email 参数指定的值与数据库中 ApplicationName 的现有用户的电子邮件地址重复,用户创建也将失败。

用户名的最大长度为 256 个字符。电子邮件地址的最大长度为 256 个字符。明文形式的密码,或者密码在哈希计算或加密后,最大长度为 128 个字符。

其他将导致用户创建失败的情况:

  • password 参数为 空引用(在 Visual Basic 中为 Nothing) 或是修整后变为空字符串。

  • password 参数的长度小于 MinRequiredPasswordLength 属性中指定的值。

  • password 参数中的非字母字符数小于 MinRequiredNonAlphanumericCharacters 属性中指定的值。

  • password 参数未通过 PasswordStrengthRegularExpression 属性中的正则表达式的验证。

  • 自定义密码验证代码在执行 ValidatingPassword 事件的过程中取消了用户创建。

  • RequiresQuestionAndAnswer 属性为 true 并且 passwordAnswer 参数为 空引用(在 Visual Basic 中为 Nothing) 或修整后的空字符串。

  • passwordAnswer 参数是空字符串。

  • passwordAnswer 参数的长度大于 128 个字符。

  • RequiresQuestionAndAnswer 属性为 true 并且密码提示问题为 空引用(在 Visual Basic 中为 Nothing) 或修整后的空字符串。

  • passwordQuestion 参数是空字符串。

  • passwordQuestion 参数的长度大于 256 个字符。

  • providerUserKey 参数设置为非 System.Guid 类型的对象。

  • providerUserKey 参数与现有用户键值重复。

  • username 参数与现有用户名重复。

删除所有字符串参数值的前导和尾随空格。

 

使用方法:

 

在已有的项目DNNDEMO中添加一个testCreateUsers.aspx文件,然后将上面的代码粘贴过去。

在web.config中将RequiresQuestionAndAnswer 设置为true,因为默认的DNN中的web.config这个属性是false。

点击创建以后去数据库中查看就能找到我们创建的用户了,不过在Users表中没有这个用户,只在aspnet_Membership表中找到了创建的用户。

下面是通过reflector得到的DNN使用SqlMembershipProvider的CreateUser的源代码: