Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Policy / UnionCodeGroup.cs / 1 / UnionCodeGroup.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // UnionCodeGroup.cs // // Representation for code groups used for the policy mechanism // namespace System.Security.Policy { using System; using System.Security.Util; using System.Security; using System.Collections; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] sealed public class UnionCodeGroup : CodeGroup, IUnionSemanticCodeGroup { internal UnionCodeGroup() : base() { } internal UnionCodeGroup( IMembershipCondition membershipCondition, PermissionSet permSet ) : base( membershipCondition, permSet ) { } public UnionCodeGroup( IMembershipCondition membershipCondition, PolicyStatement policy ) : base( membershipCondition, policy ) { } public override PolicyStatement Resolve( Evidence evidence ) { if (evidence == null) throw new ArgumentNullException("evidence"); if (this.MembershipCondition.Check( evidence )) { PolicyStatement thisPolicy = this.PolicyStatement; IEnumerator enumerator = this.Children.GetEnumerator(); while (enumerator.MoveNext()) { PolicyStatement childPolicy = ((CodeGroup)enumerator.Current).Resolve( evidence ); if (childPolicy != null) { if (((thisPolicy.Attributes & childPolicy.Attributes) & PolicyStatementAttribute.Exclusive) == PolicyStatementAttribute.Exclusive) { throw new PolicyException( Environment.GetResourceString( "Policy_MultipleExclusive" ) ); } thisPolicy.GetPermissionSetNoCopy().InplaceUnion( childPolicy.GetPermissionSetNoCopy() ); thisPolicy.Attributes = thisPolicy.Attributes | childPolicy.Attributes; } } return thisPolicy; } else { return null; } } ///PolicyStatement IUnionSemanticCodeGroup.InternalResolve( Evidence evidence ) { if (evidence == null) throw new ArgumentNullException("evidence"); if (this.MembershipCondition.Check( evidence )) { return this.PolicyStatement; } else { return null; } } public override CodeGroup ResolveMatchingCodeGroups( Evidence evidence ) { if (evidence == null) throw new ArgumentNullException("evidence"); if (this.MembershipCondition.Check( evidence )) { CodeGroup retGroup = this.Copy(); retGroup.Children = new ArrayList(); IEnumerator enumerator = this.Children.GetEnumerator(); while (enumerator.MoveNext()) { CodeGroup matchingGroups = ((CodeGroup)enumerator.Current).ResolveMatchingCodeGroups( evidence ); // If the child has a policy, we are done. if (matchingGroups != null) { retGroup.AddChild( matchingGroups ); } } return retGroup; } else { return null; } } public override CodeGroup Copy() { UnionCodeGroup group = new UnionCodeGroup(); group.MembershipCondition = this.MembershipCondition; group.PolicyStatement = this.PolicyStatement; group.Name = this.Name; group.Description = this.Description; IEnumerator enumerator = this.Children.GetEnumerator(); while (enumerator.MoveNext()) { group.AddChild( (CodeGroup)enumerator.Current ); } return group; } public override String MergeLogic { get { return Environment.GetResourceString( "MergeLogic_Union" ); } } internal override String GetTypeName() { return "System.Security.Policy.UnionCodeGroup"; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NameNode.cs
- AsyncOperation.cs
- BasicViewGenerator.cs
- WindowsAuthenticationModule.cs
- CommonDialog.cs
- newinstructionaction.cs
- Column.cs
- EventData.cs
- EntityChangedParams.cs
- ImageIndexConverter.cs
- OracleConnection.cs
- OletxEnlistment.cs
- BitmapInitialize.cs
- RegexReplacement.cs
- DataGridTextColumn.cs
- HtmlControl.cs
- ConvertersCollection.cs
- WeakHashtable.cs
- MetadataCacheItem.cs
- FrameworkEventSource.cs
- FindCompletedEventArgs.cs
- Int32CollectionValueSerializer.cs
- ViewCellSlot.cs
- CodeMethodReturnStatement.cs
- ManagementOptions.cs
- AssociationType.cs
- SetIterators.cs
- DrawingBrush.cs
- OptimalBreakSession.cs
- TypeDescriptionProvider.cs
- QilPatternVisitor.cs
- ErrorFormatterPage.cs
- MessageEncodingBindingElementImporter.cs
- AggregatePushdown.cs
- MobileResource.cs
- TextCharacters.cs
- ObjectViewFactory.cs
- DeploymentSectionCache.cs
- MemberHolder.cs
- bidPrivateBase.cs
- GradientStopCollection.cs
- TextOnlyOutput.cs
- NTAccount.cs
- ProxySimple.cs
- MessageDecoder.cs
- ProcessHost.cs
- ToolStripItemClickedEventArgs.cs
- Rect3DConverter.cs
- MetadataReference.cs
- CodeMethodMap.cs
- ControlParameter.cs
- NonParentingControl.cs
- StringArrayEditor.cs
- ChtmlPageAdapter.cs
- BulletedListDesigner.cs
- OleTxTransaction.cs
- ArrayElementGridEntry.cs
- MSAAEventDispatcher.cs
- FacetDescriptionElement.cs
- FileReader.cs
- PropertyManager.cs
- SoapFault.cs
- Input.cs
- Int64.cs
- TcpServerChannel.cs
- DeleteHelper.cs
- FormConverter.cs
- ILGenerator.cs
- XmlCharType.cs
- ControlBuilder.cs
- ExtractCollection.cs
- XPathBinder.cs
- ServiceContractGenerator.cs
- NumberFormatInfo.cs
- HostingEnvironmentException.cs
- RuleAttributes.cs
- RepeaterItemEventArgs.cs
- SqlClientMetaDataCollectionNames.cs
- COSERVERINFO.cs
- CipherData.cs
- ConversionHelper.cs
- SingleKeyFrameCollection.cs
- LoginUtil.cs
- DataDocumentXPathNavigator.cs
- ContextMarshalException.cs
- Camera.cs
- ControlUtil.cs
- SkewTransform.cs
- ButtonChrome.cs
- XmlAttributeCollection.cs
- Exceptions.cs
- Transactions.cs
- HtmlTableRow.cs
- CommandID.cs
- TransportContext.cs
- ETagAttribute.cs
- OAVariantLib.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- InternalControlCollection.cs
- SqlClientFactory.cs