2013-02-22 27 views
2

我正在制作一个ASP.NET应用程序并使用ASP.NET会员控制登录。我希望用户可以使用他的普通密码或快速登录(它允许用户创建一个类似于ATM密码的4位密码)来登录,以获得快速登录体验。我如何实现这一目标?使用备用密码的asp.net成员身份登录

回答

2

您需要扩展基本成员资格提供者并使用它。这是一个起点。

public class DoublePasswordProvider : SqlMembershipProvider 
{ 
    public override bool ValidateUser(string username, string password) 
    { 
     if (checkPIN(username, password)) return true; 
     return base.ValidateUser(username, password); 
    } 
} 

然后编辑we.config使用它:

<membership defaultProvider="DoublePasswordProvider"> 
     <providers> 

     <add name="DoublePasswordProvider" type="YourNamespace.DoublePasswordProvider" connectionStringName="ApplicationServices" 
      enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
      maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
      applicationName="/" /> 
     </providers> 
    </membership> 

最后使用标准的asp.net控件(登录,修改密码,BLA BLA)

+0

,我应该aspnet_Memberhip表添加一个字段? – user1985972 2013-02-22 10:04:10

+0

这可能是一个解决方案。避免在数据库中以“纯文本”存储引脚(出于安全原因)。始终使用加密或(甚至更好)哈希。 – 2013-02-22 10:06:06

+0

但我怎么定义会员控制来检查备用密码,即如何将登录控件与您提供的SqlMembershipProvider控件连接 – user1985972 2013-02-22 10:29:36