public override string GeneratePasswordResetToken(string userName, int tokenExpirationInMinutesFromNow)
        {
            IsValidOperation(true);
            if (string.IsNullOrEmpty(userName))
            {
                NullArgumentException("username");
            }
            int userid = GetUserId(userName);

            if (userid <= 0)
            {
                InvalidUserException(userName);
            }

            if (UserConfirmed(userid))
            {
                using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
                {
                    string token = dbConn.ExecuteScalar(string.Format("select PasswordVerificationToken from {0} where userid=? and PasswordVerificationTokenExpirationDate > ?;", _membershipTable), userid, DateTime.Now) as string;
                    if (token != null)
                    {
                        token = GenerateToken();
                        if (dbConn.ExecuteNonQuery(string.Format("update {0} set PasswordVerificationToken=?, PasswordVerificationTokenExpirationDate=? where userid=?;", _membershipTable), token, DateTime.Now.AddMinutes(tokenExpirationInMinutesFromNow), userid) <= 0)
                        {
                            throw new ProviderException(Resources.GeneratePassVerificationTokenFailed);
                        }
                    }
                    return(token);
                }
            }
            return(null);
        }
 private bool UserConfirmed(int userId)
 {
     using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
     {
         return(((long)dbConn.ExecuteScalar(string.Format("select count(*) from {0} where userid=? and isconfirmed=1;", _membershipTable), userId)) > 0);
     }
 }
 public override string GetUserNameFromId(int userId)
 {
     IsValidOperation(true);
     using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
     {
         return(dbConn.ExecuteScalar(string.Format("select {0} from {1} where {2}=?;", UserNameColumn, UserTableName, UserIdColumn), userId) as string);
     }
 }
 public override string GetOAuthTokenSecret(string token)
 {
     IsValidOperation(true);
     using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
     {
         return(dbConn.ExecuteScalar(string.Format("select secret from {0} where token=?;", _oauthTokenTable), token) as string);
     }
 }
        private int GetPasswordFailuresSinceLastSuccess(int userId)
        {
            using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
            {
                var failures = dbConn.ExecuteScalar(string.Format("select PasswordFailuresSinceLastSuccess from {0} where userid=?;", _membershipTable), userId);
                if (failures != null)
                {
                    return((int)failures);
                }

                return(-1);
            }
        }
        public override DateTime GetPasswordChangedDate(string userName)
        {
            int userid = GetUserId(userName);

            if (userid < 0)
            {
                InvalidUserException(userName);
            }

            using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
            {
                var changedDate = dbConn.ExecuteScalar(string.Format("select PasswordChangedDate from {0} where userid=?;", _membershipTable), userid);
                if (changedDate != null)
                {
                    return((DateTime)changedDate);
                }

                return(DateTime.MinValue);
            }
        }
 public override string GetUserNameFromId(int userId)
 {
   IsValidOperation(true);
   using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
   {
     return dbConn.ExecuteScalar(string.Format("select {0} from {1} where {2}=?;", UserNameColumn, UserTableName, UserIdColumn), userId) as string;
   }
 }
 public override string GetOAuthTokenSecret(string token)
 {
   IsValidOperation(true);
   using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
   {
     return dbConn.ExecuteScalar(string.Format("select secret from {0} where token=?;", _oauthTokenTable), token) as string;
   }
 }
    private int GetPasswordFailuresSinceLastSuccess(int userId)
    {
      using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
      {
        var failures = dbConn.ExecuteScalar(string.Format("select PasswordFailuresSinceLastSuccess from {0} where userid=?;", _membershipTable), userId);
        if (failures != null)
          return (int)failures;

        return -1;
      }
    }
    public override DateTime GetPasswordChangedDate(string userName)
    {
      int userid = GetUserId(userName);
      if (userid < 0)
        InvalidUserException(userName);

      using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
      {
        var changedDate = dbConn.ExecuteScalar(string.Format("select PasswordChangedDate from {0} where userid=?;", _membershipTable), userid);
        if (changedDate != null)
          return (DateTime)changedDate;

        return DateTime.MinValue;
      }
    }
    public override string GeneratePasswordResetToken(string userName, int tokenExpirationInMinutesFromNow)
    {
      IsValidOperation(true);
      if (string.IsNullOrEmpty(userName))
        NullArgumentException("username");
      int userid = GetUserId(userName);
      if (userid <= 0)
        InvalidUserException(userName);

      if (UserConfirmed(userid))
      {
        using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
        {
          string token = dbConn.ExecuteScalar(string.Format("select PasswordVerificationToken from {0} where userid=? and PasswordVerificationTokenExpirationDate > ?;", _membershipTable), userid, DateTime.Now) as string;
          if (token != null)
          {
            token = GenerateToken();
            if (dbConn.ExecuteNonQuery(string.Format("update {0} set PasswordVerificationToken=?, PasswordVerificationTokenExpirationDate=? where userid=?;", _membershipTable), token, DateTime.Now.AddMinutes(tokenExpirationInMinutesFromNow), userid) <= 0)
            {
              throw new ProviderException(Resources.GeneratePassVerificationTokenFailed);
            }
          }
          return token;
        }
      }
      return null;
    }
 private bool UserConfirmed(int userId)
 {
   using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
   {
     return ((long)dbConn.ExecuteScalar(string.Format("select count(*) from {0} where userid=? and isconfirmed=1;", _membershipTable), userId)) > 0;
   }
 }