ASP.NET2.0 - 验证Authentication(5) –自定义MembershipProvider

1.创建一个Class Library项目,让自定义CustomMemberShipProvider类继承于System.Web.Security.MembershipProvider类。

  1  public class CustomMemberShipProvider : MembershipProvider
  2     {
  3         private bool requiresQuestionAndAnswer;
  4         private int minRequiredPasswordLength;
  5 
  6         public override string ApplicationName
  7         {
  8             get
  9             {
 10                 throw new Exception("The method or operation is not implemented.");
 11             }
 12             set
 13             {
 14                 throw new Exception("The method or operation is not implemented.");
 15             }
 16         }
 17         public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
 18         {
 19 
 20             if (config["requiresQuestionAndAnswer"].ToLower() == "true")
 21                 requiresQuestionAndAnswer = true;
 22             else
 23                 requiresQuestionAndAnswer = false;
 24             int.TryParse(config["minPasswordLength"], out minRequiredPasswordLength);
 25             base.Initialize(name, config);
 26         }
 27         public override bool ChangePassword(string username, string oldPassword, string newPassword)
 28         {
 29             return true;
 30         }
 31 
 32         public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
 33         {
 34             throw new Exception("The method or operation is not implemented.");
 35         }
 36 
 37         public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
 38         {
 39             throw new Exception("The method or operation is not implemented.");
 40         }
 41 
 42         public override bool DeleteUser(string username, bool deleteAllRelatedData)
 43         {
 44             throw new Exception("The method or operation is not implemented.");
 45         }
 46 
 47         public override bool EnablePasswordReset
 48         {
 49             get { throw new Exception("The method or operation is not implemented."); }
 50         }
 51 
 52         public override bool EnablePasswordRetrieval
 53         {
 54             get { throw new Exception("The method or operation is not implemented."); }
 55         }
 56 
 57         public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
 58         {
 59             throw new Exception("The method or operation is not implemented.");
 60         }
 61 
 62         public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
 63         {
 64             throw new Exception("The method or operation is not implemented.");
 65         }
 66 
 67         public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
 68         {
 69             throw new Exception("The method or operation is not implemented.");
 70         }
 71 
 72         public override int GetNumberOfUsersOnline()
 73         {
 74             throw new Exception("The method or operation is not implemented.");
 75         }
 76 
 77         public override string GetPassword(string username, string answer)
 78         {
 79             throw new Exception("The method or operation is not implemented.");
 80         }
 81 
 82         public override MembershipUser GetUser(string username, bool userIsOnline)
 83         {
 84             return null;
 85         }
 86 
 87         public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
 88         {
 89             throw new Exception("The method or operation is not implemented.");
 90         }
 91 
 92         public override string GetUserNameByEmail(string email)
 93         {
 94             throw new Exception("The method or operation is not implemented.");
 95         }
 96 
 97         public override int MaxInvalidPasswordAttempts
 98         {
 99             get { throw new Exception("The method or operation is not implemented."); }
100         }
101 
102         public override int MinRequiredNonAlphanumericCharacters
103         {
104             get { return 0; }
105         }
106 
107         public override int MinRequiredPasswordLength
108         {
109             get { return minRequiredPasswordLength; }
110         }
111 
112         public override int PasswordAttemptWindow
113         {
114             get { throw new Exception("The method or operation is not implemented."); }
115         }
116 
117         public override MembershipPasswordFormat PasswordFormat
118         {
119             get { throw new Exception("The method or operation is not implemented."); }
120         }
121 
122         public override string PasswordStrengthRegularExpression
123         {
124             get { throw new Exception("The method or operation is not implemented."); }
125         }
126 
127         public override bool RequiresQuestionAndAnswer
128         {
129             get { return requiresQuestionAndAnswer; }
130         }
131 
132         public override bool RequiresUniqueEmail
133         {
134             get { throw new Exception("The method or operation is not implemented."); }
135         }
136 
137         public override string ResetPassword(string username, string answer)
138         {
139             throw new Exception("The method or operation is not implemented.");
140         }
141 
142         public override bool UnlockUser(string userName)
143         {
144             throw new Exception("The method or operation is not implemented.");
145         }
146 
147         public override void UpdateUser(MembershipUser user)
148         {
149             throw new Exception("The method or operation is not implemented.");
150         }
151 
152         public override bool ValidateUser(string username, string password)
153         {
154              return true;
155         }
156     }

 

2.Web Application项目中,配置Web config 文件。

 1   <authentication mode="Forms" />
 2 
 3       <membership defaultProvider="CustomMemberShipProvider">
 4         <providers>
 5           <clear/>
 6           <add name="CustomMemberShipProvider" 
 7                type="DataAcess.MemberShip.CustomMemberShipProvider" 
 8                connectionString="XuConnectionString"
 9                requiresQuestionAndAnswer="true" />
10         </providers>
11       </membership>

 

3.Login控件

创建default.aspx页面

 

http://www.asp.net/learn/videos/video-189.aspx 

posted @ 2009-01-13 16:54  许晓光  阅读(348)  评论(0编辑  收藏  举报