日期:2014-05-18  浏览次数:20450 次

membership中注册用户的问题
用注册用户的控件,怎样才能控制申请人申请用户名的长度?还有我不想让他输入带有特殊字符的帐号?该怎么做?

------解决方案--------------------
用注册用户的控件,怎样才能控制申请人申请用户名的长度?还有我不想让他输入带有特殊字符的帐号?该怎么做?
==
第一种方式:可以Web.config在<system.web><membership>节下的<providers>是否提供了相应的属性
我这里没有环境,无法测试..

第二中方式:自己使用MemberShip的API来创建,也就是不使用注册控件,这样更利于控制
前台页面自己设计,后台大致是

C# code
protected void btnRegister_Click(object sender, EventArgs e)
{
    lblMessage.Text = string.Empty;
    string userName = txtUserName.Text;
    string password = txtPassword.Text;
    string email = txtEmail.Text;
    string passwordQuestion = ddlPasswordQuestion.SelectedValue;
    string passwordAnswer = txtPasswordAnswer.Text;

    MembershipCreateStatus result;
    MembershipUser newUser = Membership.CreateUser(userName, password, email, passwordQuestion, passwordAnswer, true, out result);

    switch (result)
    {
        case MembershipCreateStatus.Success:
            txtUserName.Text = string.Empty;
            txtPassword.Text = string.Empty;
            txtEmail.Text = string.Empty;
            ddlPasswordQuestion.SelectedIndex = -1;
            txtPasswordAnswer.Text = string.Empty;
            lblMessage.Text = "成功创建用户!";
            Response.Redirect("~/Login.aspx");
            break;
        case ...
    }

------解决方案--------------------
注册用户的控件是可以自定义模板的。
------解决方案--------------------
XAML code
<membership defaultProvider="AspNetShopProvider" userIsOnlineTimeWindow="20">
      <providers>
        <add name="AspNetShopProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="AspNetShopDB" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"/>
      </providers>
    </membership>

------解决方案--------------------
用正则表达式
------解决方案--------------------
还有我不想让他输入带有特殊字符的帐号?
===
minRequiredNonalphanumericCharacters="0"
控制申请人申请用户名的长度?
===
可以用验证控件
------解决方案--------------------
minRequiredNonalphanumericCharacters="0" 设置密码的特殊字符
minRequiredPasswordLength:密码所要求的最小长度
maxInvalidPasswordAttempts:锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数

------解决方案--------------------
关注+学习!
1楼与3楼我会测试的!楼主的问题不错!