Code:
/ FX-1434 / FX-1434 / 1.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
- WasEndpointConfigContainer.cs
- HtmlButton.cs
- AuthenticationException.cs
- SecondaryIndex.cs
- IDispatchConstantAttribute.cs
- ShaperBuffers.cs
- unsafenativemethodsother.cs
- DynamicPropertyReader.cs
- DesignerActionListCollection.cs
- SpeechDetectedEventArgs.cs
- EditorAttribute.cs
- FacetValues.cs
- ServicePointManagerElement.cs
- XPathScanner.cs
- VBCodeProvider.cs
- DataGridViewCellFormattingEventArgs.cs
- Vector3D.cs
- WeakReferenceList.cs
- ConditionalBranch.cs
- MediaContext.cs
- SelectionItemProviderWrapper.cs
- ChameleonKey.cs
- DateTimeParse.cs
- MonikerHelper.cs
- InternalConfigConfigurationFactory.cs
- ServiceModelSecurityTokenRequirement.cs
- PropertyMapper.cs
- HierarchicalDataSourceConverter.cs
- StringOutput.cs
- AnonymousIdentificationSection.cs
- DatasetMethodGenerator.cs
- XmlRawWriter.cs
- UnsafeNetInfoNativeMethods.cs
- RenderDataDrawingContext.cs
- GridViewRow.cs
- TaskFormBase.cs
- FolderBrowserDialog.cs
- BindingWorker.cs
- ConsoleCancelEventArgs.cs
- ConfigUtil.cs
- XmlProcessingInstruction.cs
- TimeoutValidationAttribute.cs
- CharacterBufferReference.cs
- ExpressionNode.cs
- TemplateControl.cs
- CompositeControl.cs
- Merger.cs
- baseaxisquery.cs
- SQLStringStorage.cs
- KeyedPriorityQueue.cs
- ScriptIgnoreAttribute.cs
- StrokeNodeEnumerator.cs
- ExtensionFile.cs
- MouseGestureValueSerializer.cs
- DrawListViewColumnHeaderEventArgs.cs
- FacetDescription.cs
- SystemIPv4InterfaceProperties.cs
- CodeArgumentReferenceExpression.cs
- ScrollItemPatternIdentifiers.cs
- ObjectTag.cs
- WhitespaceRuleReader.cs
- DataFormat.cs
- EntityDataReader.cs
- ConfigurationSectionGroupCollection.cs
- GridEntry.cs
- TraceContext.cs
- FixedPageAutomationPeer.cs
- XmlReader.cs
- WsdlBuildProvider.cs
- ObfuscationAttribute.cs
- Visitor.cs
- WebPartAddingEventArgs.cs
- DBBindings.cs
- VBIdentifierName.cs
- DurationConverter.cs
- OuterGlowBitmapEffect.cs
- RoutedCommand.cs
- WebPartManagerDesigner.cs
- ContentPathSegment.cs
- UnknownWrapper.cs
- TransformerInfo.cs
- DeferredElementTreeState.cs
- ClientSettingsProvider.cs
- DbModificationCommandTree.cs
- IImplicitResourceProvider.cs
- WebBrowserDocumentCompletedEventHandler.cs
- RemotingConfigParser.cs
- SafeCryptoHandles.cs
- WindowsFormsHostAutomationPeer.cs
- SQLInt16Storage.cs
- UITypeEditors.cs
- XPathNodeInfoAtom.cs
- LinkConverter.cs
- ImpersonationOption.cs
- ObjectContext.cs
- TypedDataSetSchemaImporterExtension.cs
- SystemGatewayIPAddressInformation.cs
- Selection.cs
- GridToolTip.cs
- StateMachineExecutionState.cs