2013-02-22 26 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