示例#1
0
        public void DenyWrite(string propertyName, params string[] roles)
        {
            RolesForProperty currentRoles = GetRolesForProperty(propertyName);

            foreach (string item in roles)
            {
                currentRoles.WriteDenied.Add(item);
            }
        }
示例#2
0
        public void AllowRead(string propertyName, params string[] roles)
        {
            RolesForProperty currentRoles = GetRolesForProperty(propertyName);

            foreach (string item in roles)
            {
                currentRoles.ReadAllowed.Add(item);
            }
        }
示例#3
0
        private RolesForProperty GetRolesForProperty(string propertyName)
        {
            RolesForProperty currentRoles = null;

            if (!Rules.ContainsKey(propertyName))
            {
                currentRoles = new RolesForProperty();
                Rules.Add(propertyName, currentRoles);
            }
            else
            {
                currentRoles = Rules[propertyName];
            }
            return(currentRoles);
        }
示例#4
0
        public string[] GetRolesForProperty(string propertyName, AccessType access)
        {
            RolesForProperty currentRoles = GetRolesForProperty(propertyName);

            switch (access)
            {
            case AccessType.ReadAllowed:
                return(currentRoles.ReadAllowed.ToArray());

            case AccessType.ReadDenied:
                return(currentRoles.ReadDenied.ToArray());

            case AccessType.WriteAllowed:
                return(currentRoles.WriteAllowed.ToArray());

            case AccessType.WriteDenied:
                return(currentRoles.WriteDenied.ToArray());
            }
            return(null);
        }