override public IPermission Union(IPermission target) { if (null == target) { return(this.Copy()); } if (target.GetType() != this.GetType()) { throw ADP.PermissionTypeMismatch(); } if (IsUnrestricted()) { // MDAC 84803 return(this.Copy()); } SqlClientPermission newPermission = (SqlClientPermission)target.Copy(); if (!newPermission.IsUnrestricted()) { newPermission.AllowBlankPassword |= AllowBlankPassword; if (null != _keyvalues) { foreach (DBConnectionString entry in _keyvalues) { newPermission.AddPermissionEntry(entry); } } } return(newPermission.IsEmpty() ? null : newPermission); }
override public bool IsSubsetOf(IPermission target) { if (null == target) { return(IsEmpty()); } if (target.GetType() != this.GetType()) { throw ADP.PermissionTypeMismatch(); } SqlClientPermission superset = (target as SqlClientPermission); bool subset = superset.IsUnrestricted(); if (!subset) { if (!IsUnrestricted() && (!AllowBlankPassword || superset.AllowBlankPassword) && ((null == _keyvalues) || (null != superset._keyvaluetree))) { subset = true; if (null != _keyvalues) { foreach (DBConnectionString kventry in _keyvalues) { if (!superset._keyvaluetree.CheckValueForKeyPermit(kventry)) { subset = false; break; } } } } } return(subset); }