public override string[] GetRolesForUser(string username)
        {
            if (!Initialized)
            {
                return(_prevProvider.GetRolesForUser(username));
            }
            if (string.IsNullOrEmpty(username))
            {
                MySqlSimpleMembershipProvider.NullArgumentException("username");
            }

            string connString = ConnectionString;
            int    userid     = MySqlSimpleMembershipProvider.GetUserId(username, connString, UserTableName, UserIdColumn, UserNameColumn);

            if (userid > 0)
            {
                using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(connString))
                {
                    var roles = dbConn.ExecuteQuery(string.Format("select rt.rolename from {0} as urt join {1} as rt on urt.roleid = rt.roleid where urt.userid=?;", _userInRolesTable, _rolesTable), userid);
                    if (roles.Count() > 0)
                    {
                        return(roles.Select(role => role[0].ToString()).ToArray());
                    }
                }
            }
            return(null);
        }
Пример #2
0
 private bool UserHasRole(int userid, int roleid)
 {
     using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
     {
         return(dbConn.ExecuteQuery(string.Format("select count(*) from {0} where userid=? and roleid=?;", _userInRolesTable), userid, roleid).Count() > 0);
     }
 }
        public override string[] GetUsersInRole(string roleName)
        {
            if (!Initialized)
            {
                return(_prevProvider.GetUsersInRole(roleName));
            }
            if (string.IsNullOrEmpty(roleName))
            {
                MySqlSimpleMembershipProvider.NullArgumentException("roleName");
            }

            int roleid = GetRoleId(roleName);

            if (roleid > 0)
            {
                using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(ConnectionString))
                {
                    var users = dbConn.ExecuteQuery(string.Format("select ut.{0} from {1} as urt join {2} as ut on urt.userid = ut.{3} where urt.roleid=?;", UserNameColumn, _userInRolesTable, UserTableName, UserIdColumn), roleid);
                    if (users.Count() > 0)
                    {
                        return(users.Select(role => role[0].ToString()).ToArray());
                    }
                }
            }
            return(null);
        }
        public override bool IsUserInRole(string username, string roleName)
        {
            if (!Initialized)
            {
                return(_prevProvider.IsUserInRole(username, roleName));
            }
            string connString = ConnectionString;

            if (string.IsNullOrEmpty(username))
            {
                MySqlSimpleMembershipProvider.NullArgumentException("username");
            }
            if (string.IsNullOrEmpty(roleName))
            {
                MySqlSimpleMembershipProvider.NullArgumentException("roleName");
            }
            int userid = MySqlSimpleMembershipProvider.GetUserId(username, connString, UserTableName, UserIdColumn, UserNameColumn);
            int roleid = GetRoleId(roleName);

            if (userid <= 0 || roleid <= 0)
            {
                return(false);
            }
            using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(connString))
            {
                return((dbConn.ExecuteQuery(string.Format("select count(userid) from {0} where userid=? and roleid=?;", _userInRolesTable), userid, roleid)).Count() > 0);
            }
        }
 private bool IsRoleInUse(int roleid)
 {
     using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(ConnectionString))
     {
         return(dbConn.ExecuteQuery(string.Format("select count(*) from {0} where roleid=?;", _userInRolesTable), roleid).Count() > 0);
     }
 }
        public override string[] FindUsersInRole(string roleName, string usernameToMatch)
        {
            if (!Initialized)
            {
                return(_prevProvider.FindUsersInRole(roleName, usernameToMatch));
            }
            if (string.IsNullOrEmpty(roleName))
            {
                MySqlSimpleMembershipProvider.NullArgumentException("roleName");
            }
            if (string.IsNullOrEmpty(usernameToMatch))
            {
                return(GetUsersInRole(roleName));
            }

            using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(ConnectionString))
            {
                var usersName = dbConn.ExecuteQuery(string.Format("select ut.{0} from {1} as rt join {2} as urt on rt.roleid=urt.roleid join {3} as ut on rt.userid=ut.{4} where rt.rolename=? and ut.name like '%?%'", UserNameColumn, _rolesTable, _userInRolesTable, UserTableName, UserIdColumn), roleName, usernameToMatch);
                if (usersName.Count() > 0)
                {
                    return(usersName.Select(username => username[0].ToString()).ToArray());
                }
            }
            return(null);
        }
 internal static bool VerifyIfTableExists(string connectionString, string tableName)
 {
     using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(connectionString))
     {
         var tables = dbConn.ExecuteQuery("show tables;");
         return(tables.Where(record => record[0].ToString().Equals(tableName, StringComparison.OrdinalIgnoreCase)).Count() > 0);
     }
 }
 public override bool HasLocalAccount(int userId)
 {
     IsValidOperation(true);
     using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
     {
         return(dbConn.ExecuteQuery(string.Format("select userid from {0} where userid=?;", _membershipTable), userId).Count() > 0);
     }
 }
        public override string[] GetAllRoles()
        {
            if (!Initialized)
            {
                return(_prevProvider.GetAllRoles());
            }

            using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(ConnectionString))
            {
                var roles = dbConn.ExecuteQuery(string.Format("select rolename from {0};", _rolesTable));
                if (roles.Count() > 0)
                {
                    return(roles.Select(role => role[0].ToString()).ToArray());
                }
            }
            return(null);
        }
        public override ICollection <OAuthAccountData> GetAccountsForUser(string userName)
        {
            IsValidOperation(true);
            int userid = GetUserId(userName);

            if (userid > 0)
            {
                using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
                {
                    var records = dbConn.ExecuteQuery(string.Format("select provider, provideruserid from {0} where userid=?", _oauthMembershipTable), userid);
                    if (records != null && records.Count() > 0)
                    {
                        var accounts = new List <OAuthAccountData>();
                        records.ToList().ForEach(record => accounts.Add(new OAuthAccountData(record["provider"].ToString(), record["provideruserid"].ToString())));
                        return(accounts);
                    }
                }
            }
            return(new OAuthAccountData[0]);
        }
    public override string[] GetRolesForUser(string username)
    {
      if (!Initialized)
        return _prevProvider.GetRolesForUser(username);
      if (string.IsNullOrEmpty(username))
        MySqlSimpleMembershipProvider.NullArgumentException("username");

      string connString = GetConnectionString();
      int userid = MySqlSimpleMembershipProvider.GetUserId(username, connString, UserTableName, UserIdColumn, UserNameColumn);
      if (userid > 0)
      {
        using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(connString))
        {
          var roles = dbConn.ExecuteQuery(string.Format("select rt.rolename from {0} as urt join {1} as rt on urt.roleid = rt.roleid where urt.userid=?;", _userInRolesTable, _rolesTable), userid);
          if (roles.Count() > 0)
            return roles.Select(role => role[0].ToString()).ToArray();
        }
      }
      return null;
    }
 public override ICollection<OAuthAccountData> GetAccountsForUser(string userName)
 {
   IsValidOperation(true);
   int userid = GetUserId(userName);
   if (userid > 0)
   {
     using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
     {
       var records = dbConn.ExecuteQuery(string.Format("select provider, provideruserid from {0} where userid=?", _oauthMembershipTable), userid);
       if (records != null && records.Count() > 0)
       {
         var accounts = new List<OAuthAccountData>();
         records.ToList().ForEach(record => accounts.Add(new OAuthAccountData(record["provider"].ToString(), record["provideruserid"].ToString())));
         return accounts;
       }
     }
   }
   return new OAuthAccountData[0];
 }
    public override string[] GetUsersInRole(string roleName)
    {
      if (!Initialized)
        return _prevProvider.GetUsersInRole(roleName);
      if (string.IsNullOrEmpty(roleName))
        MySqlSimpleMembershipProvider.NullArgumentException("roleName");

      int roleid = GetRoleId(roleName);
      if (roleid > 0)
      {
        using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
        {
          var users = dbConn.ExecuteQuery(string.Format("select ut.{0} from {1} as urt join {2} as ut on urt.userid = ut.{3} where urt.roleid=?;", UserNameColumn, _userInRolesTable, UserTableName, UserIdColumn), roleid);
          if (users.Count() > 0)
            return users.Select(role => role[0].ToString()).ToArray();
        }
      }
      return null;
    }
 public override bool IsUserInRole(string username, string roleName)
 {
   if (!Initialized)
     return _prevProvider.IsUserInRole(username, roleName);
   string connString = GetConnectionString();
   if (string.IsNullOrEmpty(username))
     MySqlSimpleMembershipProvider.NullArgumentException("username");
   if (string.IsNullOrEmpty(roleName))
     MySqlSimpleMembershipProvider.NullArgumentException("roleName");
   int userid = MySqlSimpleMembershipProvider.GetUserId(username, connString, UserTableName, UserIdColumn, UserNameColumn);
   int roleid = GetRoleId(roleName);
   if (userid <= 0 || roleid <= 0)
     return false;
   using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(connString))
   {
     return (dbConn.ExecuteQuery(string.Format("select count(userid) from {0} where userid=? and roleid=?;", _userInRolesTable), userid, roleid)).Count() > 0;
   }
 }
 private bool IsRoleInUse(int roleid)
 {
   using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
   {
     return (dbConn.ExecuteQuery(string.Format("select count(*) from {0} where roleid=?;", _userInRolesTable), roleid).Count() > 0);
   }
 }
 public override bool HasLocalAccount(int userId)
 {
   IsValidOperation(true);
   using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
   {
     return (dbConn.ExecuteQuery(string.Format("select userid from {0} where userid=?;", _membershipTable), userId).Count() > 0);
   }
 }
    public override string[] GetAllRoles()
    {
      if (!Initialized)
        return _prevProvider.GetAllRoles();

      using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
      {
        var roles = dbConn.ExecuteQuery(string.Format("select rolename from {0};", _rolesTable));
        if (roles.Count() > 0)
          return roles.Select(role => role[0].ToString()).ToArray();
      }
      return null;
    }
 internal static bool VerifyIfTableExists(string connectionString, string tableName)
 {
   using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(connectionString))
   {
     var tables = dbConn.ExecuteQuery("show tables;");
     return tables.Where(record => record[0].ToString().Equals(tableName, StringComparison.OrdinalIgnoreCase)).Count() > 0;
   }
 }
    public override string[] FindUsersInRole(string roleName, string usernameToMatch)
    {
      if (!Initialized)
      {
        return _prevProvider.FindUsersInRole(roleName, usernameToMatch);
      }
      if (string.IsNullOrEmpty(roleName))
        MySqlSimpleMembershipProvider.NullArgumentException("roleName");
      if (string.IsNullOrEmpty(usernameToMatch))
        return GetUsersInRole(roleName);

      using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
      {
        var usersName = dbConn.ExecuteQuery(string.Format("select ut.{0} from {1} as rt join {2} as urt on rt.roleid=urt.roleid join {3} as ut on rt.userid=ut.{4} where rt.rolename=? and ut.name like '%?%'", UserNameColumn, _rolesTable, _userInRolesTable, UserTableName, UserIdColumn), roleName, usernameToMatch);
        if (usersName.Count() > 0)
          return usersName.Select(username => username[0].ToString()).ToArray();
      }
      return null;
    }