<membership>
            <providers>
                <clear/>
                <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
            </providers>
        </membership>
<clear/> 是什么意思?如果定义多个 <add name="AspNetSqlMembershipProvider" />在哪里确定用哪个?
如果我希望用邮箱作为用户名。。然后,密码丢失时又能用邮箱发回。。要怎么改?

解决方案 »

  1.   

    (1)<clear/>的意思是清除在其他配置文件(machine.config中定义membership的其他providers
    (2)如果定义多个 <add name="AspNetSqlMembershipProvider" />,可通过<membership defaultProvider="MyMembershipProvider">来指定默认Provider
    (3)密码丢失时又能用邮箱发回,可设置enablePasswordRetrieval="true"
    希望用邮箱作为用户名,没看到这个设置,设置requiresUniqueEmail="true"可设置注册必须使用唯一的Email地址。
    希望用邮箱作为用户名,可以使用自己调用public static MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status);这个方法创建用户,注册时,不要求用户输入用户名,而是输email地址。调用方法时,你只要用email来替换username这个位置,其他不变就可以了。