using System; using System.Collections.Generic; using System.Text; using System.Configuration.Provider; using System.Web.Security; namespace Veggerby.Utility { public class EasySignUpMembershipProvider : System.Web.Security.MembershipProvider { public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config) { if (config == null) { throw new ArgumentNullException("config"); } if (String.IsNullOrEmpty(name)) { name = "EasyRegisterMembershipProvider"; } base.Initialize(name, config); ProviderName = config["providerName"]; } private string _ProviderName; public string ProviderName { get { return _ProviderName; } set { _ProviderName = value; } } public MembershipProvider MembershipProvider { get { return Membership.Providers[ProviderName]; } } public override string ApplicationName { get { return MembershipProvider.ApplicationName; } set { MembershipProvider.ApplicationName = value; } } public override bool ChangePassword(string username, string oldPassword, string newPassword) { return MembershipProvider.ChangePassword(username, oldPassword, newPassword); } public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer) { return MembershipProvider.ChangePasswordQuestionAndAnswer(username, password, newPasswordQuestion, newPasswordAnswer); } public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out System.Web.Security.MembershipCreateStatus status) { return MembershipProvider.CreateUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status); } public override bool DeleteUser(string username, bool deleteAllRelatedData) { return MembershipProvider.DeleteUser(username, deleteAllRelatedData); } public override bool EnablePasswordReset { get { return MembershipProvider.EnablePasswordReset; } } public override bool EnablePasswordRetrieval { get { return MembershipProvider.EnablePasswordRetrieval; } } public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) { return MembershipProvider.FindUsersByEmail(emailToMatch, pageIndex, pageSize, out totalRecords); } public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) { return MembershipProvider.FindUsersByName(usernameToMatch, pageIndex, pageSize, out totalRecords); } public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) { return MembershipProvider.GetAllUsers(pageIndex, pageSize, out totalRecords); } public override int GetNumberOfUsersOnline() { return MembershipProvider.GetNumberOfUsersOnline(); } public override string GetPassword(string username, string answer) { return MembershipProvider.GetPassword(username, answer); } public override MembershipUser GetUser(string username, bool userIsOnline) { return MembershipProvider.GetUser(username, userIsOnline); } public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) { return MembershipProvider.GetUser(providerUserKey, userIsOnline); } public override string GetUserNameByEmail(string email) { return MembershipProvider.GetUserNameByEmail(email); } public override int MaxInvalidPasswordAttempts { get { return MembershipProvider.MaxInvalidPasswordAttempts; } } public override int MinRequiredNonAlphanumericCharacters { get { return MembershipProvider.MinRequiredNonAlphanumericCharacters; } } public override int MinRequiredPasswordLength { get { return MembershipProvider.MinRequiredPasswordLength; } } public override int PasswordAttemptWindow { get { return MembershipProvider.PasswordAttemptWindow; } } public override System.Web.Security.MembershipPasswordFormat PasswordFormat { get { return MembershipProvider.PasswordFormat; } } public override string PasswordStrengthRegularExpression { get { return MembershipProvider.PasswordStrengthRegularExpression; } } public override string ResetPassword(string username, string answer) { return MembershipProvider.ResetPassword(username, answer); } public override bool UnlockUser(string userName) { return MembershipProvider.UnlockUser(userName); } public override void UpdateUser(MembershipUser user) { MembershipProvider.UpdateUser(user); } public override bool RequiresQuestionAndAnswer { get { if (MembershipProvider.RequiresQuestionAndAnswer) { throw new ProviderException("RequiresQuestionAndAnswer must be false"); } return false; } } public override bool RequiresUniqueEmail { get { if (MembershipProvider.RequiresUniqueEmail) { throw new ProviderException("RequiresUniqueEmail must be false"); } return false; } } public override bool ValidateUser(string username, string password) { if (GetUser(username, false) == null) { MembershipCreateStatus status = MembershipCreateStatus.Success; MembershipUser user = CreateUser(username, password, null, null, null, true, null, out status); if (status != MembershipCreateStatus.Success) { throw new ProviderException(string.Format("Could not automatically create user: {0}", status)); } } return MembershipProvider.ValidateUser(username, password); } } }