Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Policy / ApplicationDirectoryMembershipCondition.cs / 1 / ApplicationDirectoryMembershipCondition.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // ApplicationDirectoryMembershipCondition.cs // // Implementation of membership condition for "application directories" // namespace System.Security.Policy { using System; using SecurityElement = System.Security.SecurityElement; using System.Security.Policy; using URLString = System.Security.Util.URLString; using System.Collections; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] sealed public class ApplicationDirectoryMembershipCondition : IMembershipCondition, IConstantMembershipCondition { //------------------------------------------------------ // // PRIVATE STATE DATA // //----------------------------------------------------- //----------------------------------------------------- // // PUBLIC CONSTRUCTORS // //----------------------------------------------------- public ApplicationDirectoryMembershipCondition() { } //------------------------------------------------------ // // IMEMBERSHIPCONDITION IMPLEMENTATION // //----------------------------------------------------- public bool Check( Evidence evidence ) { if (evidence == null) return false; IEnumerator enumerator = evidence.GetHostEnumerator(); while (enumerator.MoveNext()) { Object obj = enumerator.Current; if (obj is ApplicationDirectory) { ApplicationDirectory dir = (ApplicationDirectory)obj; IEnumerator innerEnumerator = evidence.GetHostEnumerator(); while (innerEnumerator.MoveNext()) { Object innerObj = innerEnumerator.Current; if (innerObj is Url) { // We need to add a wildcard at the end because IsSubsetOf // keys off of it. String appDir = dir.Directory; if (appDir != null && appDir.Length > 1) { if (appDir[appDir.Length-1] == '/') appDir += "*"; else appDir += "/*"; // comment URLString appDirString = new URLString( appDir ); if (((Url)innerObj).GetURLString().IsSubsetOf( appDirString )) { return true; } } } } } } return false; } public IMembershipCondition Copy() { return new ApplicationDirectoryMembershipCondition(); } public SecurityElement ToXml() { return ToXml( null ); } public void FromXml( SecurityElement e ) { FromXml( e, null ); } public SecurityElement ToXml( PolicyLevel level ) { SecurityElement root = new SecurityElement( "IMembershipCondition" ); System.Security.Util.XMLUtil.AddClassAttribute( root, this.GetType(), "System.Security.Policy.ApplicationDirectoryMembershipCondition" ); // If you hit this assert then most likely you are trying to change the name of this class. // This is ok as long as you change the hard coded string above and change the assert below. BCLDebug.Assert( this.GetType().FullName.Equals( "System.Security.Policy.ApplicationDirectoryMembershipCondition" ), "Class name changed!" ); root.AddAttribute( "version", "1" ); return root; } public void FromXml( SecurityElement e, PolicyLevel level ) { if (e == null) throw new ArgumentNullException("e"); if (!e.Tag.Equals( "IMembershipCondition" )) { throw new ArgumentException( Environment.GetResourceString( "Argument_MembershipConditionElement" ) ); } } public override bool Equals( Object o ) { return (o is ApplicationDirectoryMembershipCondition); } public override int GetHashCode() { return typeof( ApplicationDirectoryMembershipCondition ).GetHashCode(); } public override String ToString() { return Environment.GetResourceString( "ApplicationDirectory_ToString" ); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ModifiableIteratorCollection.cs
- VoiceChangeEventArgs.cs
- AssemblyBuilderData.cs
- DataGridViewColumnEventArgs.cs
- NativeMethods.cs
- JoinCqlBlock.cs
- AlternateView.cs
- OperationAbortedException.cs
- FactoryId.cs
- SqlDependencyUtils.cs
- InvokePatternIdentifiers.cs
- OpenTypeLayout.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- XmlWhitespace.cs
- DataSvcMapFile.cs
- AVElementHelper.cs
- MeasureData.cs
- EventItfInfo.cs
- RelationshipEndMember.cs
- Transform.cs
- WsatServiceAddress.cs
- XmlSchemas.cs
- DataGridCellItemAutomationPeer.cs
- WebPartUserCapability.cs
- Rfc2898DeriveBytes.cs
- QuaternionRotation3D.cs
- SoundPlayer.cs
- SelectionProcessor.cs
- SizeConverter.cs
- XmlConvert.cs
- TextFormatter.cs
- RpcCryptoRequest.cs
- ProxyDataContractResolver.cs
- FileRecordSequenceHelper.cs
- _OverlappedAsyncResult.cs
- Action.cs
- PersonalizableTypeEntry.cs
- ObjectConverter.cs
- UIInitializationException.cs
- RootAction.cs
- ReferenceEqualityComparer.cs
- DriveNotFoundException.cs
- DelayedRegex.cs
- ImageIndexConverter.cs
- SettingsBase.cs
- NameScope.cs
- Drawing.cs
- Error.cs
- TreeNodeMouseHoverEvent.cs
- PartialCachingAttribute.cs
- PreservationFileReader.cs
- AutomationPropertyInfo.cs
- GridViewDesigner.cs
- AddIn.cs
- OciHandle.cs
- TraceSection.cs
- EventLogPermissionHolder.cs
- DragDropHelper.cs
- MatrixCamera.cs
- JavaScriptSerializer.cs
- NavigationPropertyEmitter.cs
- ImageKeyConverter.cs
- ClientOptions.cs
- SchemaTypeEmitter.cs
- ValidateNames.cs
- TextEditorSelection.cs
- TcpServerChannel.cs
- DesignerProperties.cs
- HttpChannelHelpers.cs
- EmptyCollection.cs
- XmlIgnoreAttribute.cs
- ColumnHeader.cs
- ExtensionElement.cs
- Row.cs
- NameTable.cs
- RegexGroup.cs
- StyleCollection.cs
- FormatterServices.cs
- DataIdProcessor.cs
- SafePipeHandle.cs
- Popup.cs
- SmtpReplyReaderFactory.cs
- BitmapEffect.cs
- HttpCapabilitiesBase.cs
- WebConfigurationHostFileChange.cs
- DataServiceRequestArgs.cs
- UIInitializationException.cs
- ServiceHost.cs
- PhysicalOps.cs
- HtmlInputFile.cs
- Property.cs
- FieldToken.cs
- WinFormsComponentEditor.cs
- FileUtil.cs
- BridgeDataRecord.cs
- ExpandButtonVisibilityConverter.cs
- ErrorHandler.cs
- CultureInfoConverter.cs
- ListViewTableRow.cs
- ConsumerConnectionPoint.cs