Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Policy / ApplicationDirectoryMembershipCondition.cs / 1305376 / 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, IReportMatchMembershipCondition { //------------------------------------------------------ // // PRIVATE STATE DATA // //----------------------------------------------------- //----------------------------------------------------- // // PUBLIC CONSTRUCTORS // //----------------------------------------------------- public ApplicationDirectoryMembershipCondition() { } //------------------------------------------------------ // // IMEMBERSHIPCONDITION IMPLEMENTATION // //----------------------------------------------------- public bool Check( Evidence evidence ) { object usedEvidence = null; return (this as IReportMatchMembershipCondition).Check(evidence, out usedEvidence); } bool IReportMatchMembershipCondition.Check(Evidence evidence, out object usedEvidence) { usedEvidence = null; if (evidence == null) return false; ApplicationDirectory dir = evidence.GetHostEvidence(); Url url = evidence.GetHostEvidence (); if (dir != null && url != null) { // 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 += "/*"; URLString appDirString = new URLString(appDir); if (url.GetURLString().IsSubsetOf(appDirString)) { usedEvidence = dir; 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" ); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // 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, IReportMatchMembershipCondition { //------------------------------------------------------ // // PRIVATE STATE DATA // //----------------------------------------------------- //----------------------------------------------------- // // PUBLIC CONSTRUCTORS // //----------------------------------------------------- public ApplicationDirectoryMembershipCondition() { } //------------------------------------------------------ // // IMEMBERSHIPCONDITION IMPLEMENTATION // //----------------------------------------------------- public bool Check( Evidence evidence ) { object usedEvidence = null; return (this as IReportMatchMembershipCondition).Check(evidence, out usedEvidence); } bool IReportMatchMembershipCondition.Check(Evidence evidence, out object usedEvidence) { usedEvidence = null; if (evidence == null) return false; ApplicationDirectory dir = evidence.GetHostEvidence(); Url url = evidence.GetHostEvidence (); if (dir != null && url != null) { // 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 += "/*"; URLString appDirString = new URLString(appDir); if (url.GetURLString().IsSubsetOf(appDirString)) { usedEvidence = dir; 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" ); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProviderSettings.cs
- RuleSettings.cs
- DesignRelation.cs
- Partitioner.cs
- TextEndOfLine.cs
- DiagnosticStrings.cs
- HostedTransportConfigurationManager.cs
- GroupItem.cs
- ObjectStateManager.cs
- UserControl.cs
- SafeReversePInvokeHandle.cs
- DelegateBodyWriter.cs
- RequestCachingSection.cs
- FileVersionInfo.cs
- MetricEntry.cs
- ScaleTransform.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- StrictAndMessageFilter.cs
- XPathCompileException.cs
- ObjectNavigationPropertyMapping.cs
- Table.cs
- Accessible.cs
- XmlBinaryReader.cs
- DesignerResources.cs
- KeyPressEvent.cs
- XsltInput.cs
- SpeechEvent.cs
- RelationshipNavigation.cs
- RenderData.cs
- SqlColumnizer.cs
- Effect.cs
- HtmlTextArea.cs
- BitmapImage.cs
- ObjectCache.cs
- ElementAtQueryOperator.cs
- ThicknessAnimation.cs
- EncoderExceptionFallback.cs
- ScriptReference.cs
- TextSelectionProcessor.cs
- DbParameterHelper.cs
- TableLayoutPanelCellPosition.cs
- ParameterCollection.cs
- coordinatorscratchpad.cs
- Vector3D.cs
- HtmlLink.cs
- XmlStringTable.cs
- PnrpPermission.cs
- WhiteSpaceTrimStringConverter.cs
- TextViewBase.cs
- MeasureItemEvent.cs
- XmlDocumentFragment.cs
- IsolationInterop.cs
- HttpHandlerAction.cs
- ScalarOps.cs
- XmlDataProvider.cs
- ItemType.cs
- AstTree.cs
- RangeContentEnumerator.cs
- FixUpCollection.cs
- NavigationWindow.cs
- XmlDataFileEditor.cs
- srgsitem.cs
- ValueHandle.cs
- PageThemeCodeDomTreeGenerator.cs
- BufferedGraphicsContext.cs
- InstanceData.cs
- RemotingServices.cs
- JavascriptCallbackBehaviorAttribute.cs
- EntityViewGenerator.cs
- TypeToStringValueConverter.cs
- RegexCode.cs
- TcpTransportElement.cs
- CollectionView.cs
- Model3DCollection.cs
- MenuAutoFormat.cs
- HttpListenerException.cs
- QueryCreatedEventArgs.cs
- RuntimeConfigLKG.cs
- BorderGapMaskConverter.cs
- QilStrConcat.cs
- ContextBase.cs
- Page.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- MatrixStack.cs
- ScrollChrome.cs
- MSAAEventDispatcher.cs
- FixedSOMFixedBlock.cs
- XmlSignificantWhitespace.cs
- ResourceManager.cs
- ServiceContractViewControl.Designer.cs
- ComponentChangedEvent.cs
- ChannelSinkStacks.cs
- EntityConnection.cs
- TrackingValidationObjectDictionary.cs
- TextDecoration.cs
- IndentedWriter.cs
- HttpHandlersSection.cs
- DecoderReplacementFallback.cs
- SmtpException.cs
- MessageSecurityOverHttp.cs