Пример #1
0
        internal static QueryFilter ConstructRoleEntryFilter(string name, ManagementRoleEntryType type, string snapinName)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }
            char value;

            switch (type)
            {
            case ManagementRoleEntryType.Cmdlet:
                value = 'c';
                goto IL_52;

            case ManagementRoleEntryType.Script:
                value = 's';
                goto IL_52;

            case ManagementRoleEntryType.Cmdlet | ManagementRoleEntryType.Script:
                break;

            case ManagementRoleEntryType.ApplicationPermission:
                value = 'a';
                goto IL_52;

            default:
                if (type == ManagementRoleEntryType.WebService)
                {
                    value = 'w';
                    goto IL_52;
                }
                break;
            }
            throw new ArgumentOutOfRangeException("type");
IL_52:
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(value);
            stringBuilder.Append(',');
            stringBuilder.Append(name);
            if (type == ManagementRoleEntryType.Cmdlet && !string.IsNullOrEmpty(snapinName))
            {
                stringBuilder.Append(',');
                stringBuilder.Append(snapinName);
            }
            stringBuilder.Append(',');
            stringBuilder.Append('*');
            stringBuilder.Replace('?', '*');
            return(RBACHelper.ConstructRoleEntryFilter(stringBuilder.ToString()));
        }
Пример #2
0
        internal static QueryFilter ConstructRoleEntryParameterFilter(string[] parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }
            List <QueryFilter> list = new List <QueryFilter>(parameters.Length);

            foreach (string value in parameters)
            {
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.Append('*');
                stringBuilder.Append(',');
                stringBuilder.Append(value);
                stringBuilder.Append('*');
                stringBuilder.Replace('?', '*');
                list.Add(RBACHelper.ConstructRoleEntryFilter(stringBuilder.ToString()));
            }
            return(new AndFilter(list.ToArray()));
        }
Пример #3
0
 internal static QueryFilter ConstructRoleEntryFilter(string name, ManagementRoleEntryType type)
 {
     return(RBACHelper.ConstructRoleEntryFilter(name, type, null));
 }