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);
        }
예제 #2
0
        public void FindUsersInRoleTest()
        {
            if (!rp.RoleExists(specialRN1))
            {
                rp.CreateRole(specialRN1);
            }
            var userNames = new[] { "zaza123", "zaza321", "zqqa123" };

            foreach (var userName in userNames)
            {
                CreateUser(userName, "qwerty123", userName + "@gmail.com", true);
            }
            DateTime now = DateTime.Now;

            rp.AddUsersToRoles(userNames, new[] { specialRN1 });
            Console.WriteLine("Adding {1} users to roles took: {0}", (DateTime.Now - now), userNames.Length);
            now = DateTime.Now;
            var found = rp.FindUsersInRole(specialRN1, "zaza%");

            Console.WriteLine("Finding all users within role took: {0}", (DateTime.Now - now));
            Assert.AreEqual(found.Length, 2);
            Assert.IsFalse(found.Contains("zqqa123"));

            foreach (var userName in userNames)
            {
                mp.DeleteUser(userName, false);
            }
        }
예제 #3
0
        public override string[] FindUsersInRole(string roleName, string usernameToMatch)
        {
            LogDebug("Entering CachedProvider.FindUsersInRole");
            string[] users;
            users = _provider.FindUsersInRole(roleName, usernameToMatch);

            return(users);
        }
예제 #4
0
 public List <string> FindUsersInRole(string roleName, string usernameToMatch)
 {
     return(_provider.FindUsersInRole(roleName, usernameToMatch).ToList <string>());
 }
예제 #5
0
 public string[] FindUsersInRole(string roleName, string usernameToMatch)
 {
     return(roleProvider.FindUsersInRole(roleName, usernameToMatch));
 }
        public void MembershipRole_FindUsersInRoleTests()
        {
            string userMask;
            string roleName;

            string[] userNames;
            //-------------------------------------------------------
            // single user mask in existing role - success
            //-------------------------------------------------------
            userMask  = TestUtils.Users[0].Username;
            roleName  = TestUtils.ProviderRoles[0];
            userNames = _provider.FindUsersInRole(roleName, userMask);
            Assert.AreEqual <int>(1, userNames.Length);
            Assert.AreEqual <string>(userNames[0], userMask);

            //-------------------------------------------------------
            // ? wild card user mask in existing role - success
            //-------------------------------------------------------
            userMask  = "TEST_USER:00?";
            roleName  = TestUtils.ProviderRoles[0];
            userNames = _provider.FindUsersInRole(roleName, userMask);
            Assert.AreEqual <int>(3, userNames.Length);
            Assert.AreEqual <string>(userNames[0], TestUtils.Users[0].Username);
            Assert.AreEqual <string>(userNames[1], TestUtils.Users[2].Username);
            Assert.AreEqual <string>(userNames[2], TestUtils.Users[4].Username);

            //-------------------------------------------------------
            // * wild card user mask in existing role - success
            //-------------------------------------------------------
            userMask  = "TEST_USER:*";
            roleName  = TestUtils.ProviderRoles[0];
            userNames = _provider.FindUsersInRole(roleName, userMask);
            Assert.AreEqual <int>(3, userNames.Length);
            Assert.AreEqual <string>(userNames[0], TestUtils.Users[0].Username);
            Assert.AreEqual <string>(userNames[1], TestUtils.Users[2].Username);
            Assert.AreEqual <string>(userNames[2], TestUtils.Users[4].Username);

            //-------------------------------------------------------
            // empty user mask - error
            //-------------------------------------------------------
            userMask = string.Empty;
            roleName = TestUtils.ProviderRoles[0];
            try
            {
                userNames = _provider.FindUsersInRole(roleName, userMask);
                Assert.Fail("Provider did not throw expected ArgumentException");
            }
            catch (ArgumentException)
            {
                // ignore expected exception
            }

            //-------------------------------------------------------
            //  nonexistant user mask in existing role - success. no results
            //-------------------------------------------------------
            userMask  = Guid.NewGuid().ToString();
            roleName  = TestUtils.ProviderRoles[0];
            userNames = _provider.FindUsersInRole(roleName, userMask);
            Assert.IsNotNull(userNames);
            Assert.AreEqual <int>(0, userNames.Length);

            //-------------------------------------------------------
            //  null user mask - error
            //-------------------------------------------------------
            userMask = null;
            roleName = TestUtils.ProviderRoles[0];
            try
            {
                userNames = _provider.FindUsersInRole(roleName, userMask);
                Assert.Fail("Provider did not throw expected ArgumentNullException");
            }
            catch (ArgumentNullException)
            {
                // ignore expected exception
            }

            //-------------------------------------------------------
            // valid user mask, empty rolename - error
            //-------------------------------------------------------
            userMask = TestUtils.Users[0].Username;
            roleName = string.Empty;
            try
            {
                userNames = _provider.FindUsersInRole(roleName, userMask);
                Assert.Fail("Provider did not throw expected ArgumentException");
            }
            catch (ArgumentException)
            {
                // ignore expected exception
            }

            //-------------------------------------------------------
            // valid user mask, null rolename - error
            //-------------------------------------------------------
            userMask = TestUtils.Users[0].Username;
            roleName = null;
            try
            {
                userNames = _provider.FindUsersInRole(roleName, userMask);
                Assert.Fail("Provider did not throw expected ArgumentNullException");
            }
            catch (ArgumentNullException)
            {
                // ignore expected exception
            }

            //-------------------------------------------------------
            // valid user mask, nonexistant rolename - error
            //-------------------------------------------------------
            userMask = TestUtils.Users[0].Username;
            roleName = Guid.NewGuid().ToString();
            try
            {
                userNames = _provider.FindUsersInRole(roleName, userMask);
                Assert.Fail("Provider did not throw expected ProviderException");
            }
            catch (ProviderException)
            {
                //ignore expected exception
            }
        }