Inheritance: System.Web.Security.MembershipProvider
Beispiel #1
0
        public override void AddUsersToRoles(string[] usernames, string[] rolenames)
        {
            foreach (string rolename in rolenames)
            {
                if (!RoleExists(rolename))
                {
                    throw new ProviderException("Role name not found.");
                }
            }

            foreach (string username in usernames)
            {
                if (username.IndexOf(',') > 0)
                {
                    throw new ArgumentException("User names cannot contain commas.");
                }

                foreach (string rolename in rolenames)
                {
                    if (IsUserInRole(username, rolename))
                    {
                        throw new ProviderException("User is already in role.");
                    }
                }
            }

            CsDOMembershipProvider mp = new CsDOMembershipProvider();
            mp.SetupParameters(assemblyName, userType);

            foreach (string username in usernames)
            {
                foreach (string rolename in rolenames)
                {
                    DataObject data = NewUsersInRoles();
                    _UsersInRoles_Role.SetValue(data, GetRole(rolename), null);
                    _UsersInRoles_User.SetValue(data, mp.GetUser(username), null);
                    data.insert();
                }
            }
        }
Beispiel #2
0
        public override string[] GetUsersInRole(string rolename)
        {
            string tmpUserNames = "";

            DataObject data = NewRole();
            _UsersInRoles_Role.SetValue(data, rolename, null);
            IList users = data.ToArray(true);

            foreach(DataObject user in users)
            {
                CsDOMembershipProvider mp = new CsDOMembershipProvider();
                mp.SetupParameters(assemblyName, userType);

                tmpUserNames += mp._User_Name.GetValue(
                    _UsersInRoles_User.GetValue(user, null), null).ToString() + ",";
            }

            if (tmpUserNames.Length > 0)
            {
                // Remove trailing comma.
                tmpUserNames = tmpUserNames.Substring(0, tmpUserNames.Length - 1);
                return tmpUserNames.Split(',');
            }

            return new string[0];
        }
Beispiel #3
0
        public override void RemoveUsersFromRoles(string[] usernames, string[] rolenames)
        {
            foreach (string rolename in rolenames)
            {
                if (!RoleExists(rolename))
                {
                    throw new ProviderException("Role name not found.");
                }
            }

            foreach (string username in usernames)
            {
                foreach (string rolename in rolenames)
                {
                    if (!IsUserInRole(username, rolename))
                    {
                        throw new ProviderException("User is not in role.");
                    }
                }
            }

            CsDOMembershipProvider mp = new CsDOMembershipProvider();
            mp.SetupParameters(assemblyName, userType);

            foreach (string username in usernames)
            {
                foreach (string rolename in rolenames)
                {
                    DataObject role = NewRole();
                    _Role_Name.SetValue(role, rolename, null);
                    role.find();
                    role.fetch();
                    DataObject user = mp.NewUser();
                    mp._User_Name.SetValue(user, username, null);
                    role.find();
                    role.fetch();
                    DataObject usersInRoles = NewUsersInRoles();
                    _UsersInRoles_Role.SetValue(usersInRoles, role, null);
                    _UsersInRoles_User.SetValue(usersInRoles, user, null);
                    IList users = usersInRoles.ToArray(true);

                    foreach (DataObject item in users)
                        item.delete();
                }
            }
        }
Beispiel #4
0
        public override string[] FindUsersInRole(string rolename, string usernameToMatch)
        {
            string tmpUserNames = "";

            CsDOMembershipProvider mp = new CsDOMembershipProvider();
            mp.SetupParameters(assemblyName, userType);

            DataObject role = NewRole();
            _Role_Name.SetValue(role, rolename, null);
            role.find();
            role.fetch();
            DataObject user = mp.NewUser();
            mp._User_Name.SetValue(user, usernameToMatch, null);
            role.find();
            role.fetch();
            DataObject usersInRoles = NewUsersInRoles();
            _UsersInRoles_Role.SetValue(usersInRoles, role, null);
            _UsersInRoles_User.SetValue(usersInRoles, user, null);
            IList users = usersInRoles.ToArray(true);

            foreach(DataObject item in users)
            {
                tmpUserNames += mp._User_Name.GetValue(item, null).ToString() + ",";
            }

            if (tmpUserNames.Length > 0)
            {
                // Remove trailing comma.
                tmpUserNames = tmpUserNames.Substring(0, tmpUserNames.Length - 1);
                return tmpUserNames.Split(',');
            }

            return new string[0];
        }