Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BrowserCapabilitiesCompiler.cs
- StaticResourceExtension.cs
- RuntimeResourceSet.cs
- Bold.cs
- OdbcInfoMessageEvent.cs
- SerialErrors.cs
- DiscardableAttribute.cs
- ConnectionsZone.cs
- TokenBasedSet.cs
- WebServiceClientProxyGenerator.cs
- VScrollBar.cs
- WebMessageEncodingBindingElement.cs
- Region.cs
- TextServicesDisplayAttribute.cs
- DependencyPropertyKind.cs
- HtmlAnchor.cs
- PolyLineSegmentFigureLogic.cs
- Verify.cs
- NotImplementedException.cs
- PageContent.cs
- ReliableRequestSessionChannel.cs
- LinkedResourceCollection.cs
- SymmetricSecurityBindingElement.cs
- MenuItemCollection.cs
- ClientSideQueueItem.cs
- ObjectDisposedException.cs
- DefaultPrintController.cs
- EtwProvider.cs
- DataGridViewCellStyleConverter.cs
- FixedPosition.cs
- Point3DCollection.cs
- FacetEnabledSchemaElement.cs
- OracleConnection.cs
- TabPanel.cs
- _HeaderInfo.cs
- PerformanceCounterManager.cs
- DefaultTypeArgumentAttribute.cs
- WindowsGraphicsCacheManager.cs
- EventProviderWriter.cs
- LinkLabelLinkClickedEvent.cs
- XmlTypeMapping.cs
- AudioStateChangedEventArgs.cs
- OperationFormatUse.cs
- XomlCompilerParameters.cs
- WebPartConnectionsCancelEventArgs.cs
- ErrorHandler.cs
- XmlSchemaAny.cs
- CodeDomSerializationProvider.cs
- BuildProviderUtils.cs
- ProxyGenerationError.cs
- XmlSchemaElement.cs
- OleDbConnectionInternal.cs
- DetailsViewPageEventArgs.cs
- ImportCatalogPart.cs
- PlainXmlWriter.cs
- ObjectCloneHelper.cs
- PerspectiveCamera.cs
- ReferencedType.cs
- StoreItemCollection.Loader.cs
- ParsedRoute.cs
- XmlNodeList.cs
- XmlSerializationGeneratedCode.cs
- DataGridColumnEventArgs.cs
- BulletChrome.cs
- ListViewDeleteEventArgs.cs
- XmlCustomFormatter.cs
- SqlProfileProvider.cs
- HttpProfileBase.cs
- TextDecoration.cs
- FileReader.cs
- processwaithandle.cs
- Parameter.cs
- ForeignKeyConstraint.cs
- TypeConverterAttribute.cs
- EmptyReadOnlyDictionaryInternal.cs
- ResourceType.cs
- odbcmetadatacollectionnames.cs
- PerformanceCounter.cs
- MsdtcClusterUtils.cs
- BitmapScalingModeValidation.cs
- DecimalAverageAggregationOperator.cs
- HtmlLinkAdapter.cs
- TextMetrics.cs
- SqlRowUpdatedEvent.cs
- BamlTreeUpdater.cs
- PolicyChain.cs
- CompositeFontFamily.cs
- PortCache.cs
- AsmxEndpointPickerExtension.cs
- FontCollection.cs
- DataSvcMapFile.cs
- ClientTargetCollection.cs
- PathBox.cs
- COM2ExtendedTypeConverter.cs
- TimeSpanConverter.cs
- RewritingProcessor.cs
- XmlComment.cs
- CompiledELinqQueryState.cs
- DoubleCollection.cs
- BindingContext.cs