private static CodeFirstExtendedProvider VerifyProvider()
        {
            CodeFirstExtendedProvider provider = System.Web.Security.Membership.Provider as CodeFirstExtendedProvider;

            if (provider == null)
            {
                throw new InvalidOperationException("Provider Is Not ExtendedMembershipProvider");
            }
            return(provider);
        }
        public static bool Login(string userNameOrEmail, string password, bool persistCookie = false)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();
            dynamic success = provider.ExtendedValidateUser(userNameOrEmail, password);

            if (!(string.IsNullOrEmpty(success)))
            {
                FormsAuthentication.SetAuthCookie(success, persistCookie);
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public static bool ConfirmAccount(string accountConfirmationToken)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.ConfirmAccount(accountConfirmationToken));
        }
        public static DateTime GetCreateDate(string userName)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.GetCreateDate(userName));
        }
        public static DateTime GetLastPasswordFailureDate(string userName)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.GetLastPasswordFailureDate(userName));
        }
 private static bool IsAccountLockedOutInternal(CodeFirstExtendedProvider provider, string userName, int allowedPasswordAttempts, TimeSpan interval)
 {
     return(provider.GetUser(userName, false) != null && provider.GetPasswordFailuresSinceLastSuccess(userName) > allowedPasswordAttempts && provider.GetLastPasswordFailureDate(userName).Add(interval) > DateTime.Now);
 }
        public static int GetPasswordFailuresSinceLastSuccess(string userName)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.GetPasswordFailuresSinceLastSuccess(userName));
        }
        public static bool ResetPassword(string passwordResetToken, string newPassword)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.ResetPasswordWithToken(passwordResetToken, newPassword));
        }
        public static bool IsAccountLockedOut(string userName, int allowedPasswordAttempts, TimeSpan interval)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(IsAccountLockedOutInternal(provider, userName, allowedPasswordAttempts, interval));
        }
        public static bool IsConfirmed(string userName)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.IsConfirmed(userName));
        }
        public static Guid GetUserIdFromPasswordResetToken(string token)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.GetUserIdFromPasswordResetToken(token));
        }
        public static string GeneratePasswordResetToken(string userName, int tokenExpirationInMinutesFromNow = 1440)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.GeneratePasswordResetToken(userName, tokenExpirationInMinutesFromNow));
        }
        public static string CreateAccount(string userName, string password, string email, bool requireConfirmationToken = false)
        {
            CodeFirstExtendedProvider provider = VerifyProvider();

            return(provider.CreateAccount(userName, password, email, requireConfirmationToken));
        }
 private static bool IsAccountLockedOutInternal(CodeFirstExtendedProvider provider, string userName, int allowedPasswordAttempts, TimeSpan interval)
 {
     return (provider.GetUser(userName, false) != null && provider.GetPasswordFailuresSinceLastSuccess(userName) > allowedPasswordAttempts && provider.GetLastPasswordFailureDate(userName).Add(interval) > DateTime.Now);
 }