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
- PieceNameHelper.cs
- DataTableTypeConverter.cs
- ValidationErrorInfo.cs
- RelatedView.cs
- SqlDependencyListener.cs
- CacheChildrenQuery.cs
- ValidationSummary.cs
- AudioLevelUpdatedEventArgs.cs
- TypeInitializationException.cs
- Pts.cs
- FontCollection.cs
- ChooseAction.cs
- MaskedTextBoxDesignerActionList.cs
- CopyOnWriteList.cs
- DirectionalLight.cs
- ConditionalExpression.cs
- Emitter.cs
- SymbolDocumentInfo.cs
- DrawingVisual.cs
- ResourceDescriptionAttribute.cs
- SafeBuffer.cs
- DbConnectionOptions.cs
- AutomationPropertyInfo.cs
- CodeMemberField.cs
- ApplicationFileCodeDomTreeGenerator.cs
- SqlResolver.cs
- QilValidationVisitor.cs
- Trigger.cs
- SecureStringHasher.cs
- EventWaitHandle.cs
- SmtpNtlmAuthenticationModule.cs
- StandardBindingElementCollection.cs
- CodeIdentifiers.cs
- DtrList.cs
- HttpStreamXmlDictionaryReader.cs
- DataGridViewCheckBoxCell.cs
- EntityCollection.cs
- HtmlInputHidden.cs
- Camera.cs
- AppSecurityManager.cs
- PrimitiveCodeDomSerializer.cs
- SqlAliasesReferenced.cs
- Win32PrintDialog.cs
- Dictionary.cs
- IsolatedStorageException.cs
- TaskFormBase.cs
- NativeMethods.cs
- AutoSizeToolBoxItem.cs
- AbstractDataSvcMapFileLoader.cs
- TextTreeTextNode.cs
- TableSectionStyle.cs
- ColumnHeader.cs
- TextLineBreak.cs
- ToolStripItemTextRenderEventArgs.cs
- MenuItemBinding.cs
- TypographyProperties.cs
- PoisonMessageException.cs
- ScriptingJsonSerializationSection.cs
- FormatConvertedBitmap.cs
- ScriptingJsonSerializationSection.cs
- FileLevelControlBuilderAttribute.cs
- PersonalizationDictionary.cs
- ReflectEventDescriptor.cs
- Journaling.cs
- ClientTarget.cs
- FrameworkContentElement.cs
- FacetDescriptionElement.cs
- XmlSchemaAnnotation.cs
- Size3DValueSerializer.cs
- NullableBoolConverter.cs
- QilInvokeEarlyBound.cs
- PeerTransportElement.cs
- FontStretchConverter.cs
- DrawingAttributesDefaultValueFactory.cs
- ProviderConnectionPointCollection.cs
- MultipartIdentifier.cs
- DispatcherHookEventArgs.cs
- ReadOnlyDataSource.cs
- XmlSchemaChoice.cs
- BuildDependencySet.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- TabPanel.cs
- safemediahandle.cs
- TreeNode.cs
- StringComparer.cs
- WpfWebRequestHelper.cs
- LinearGradientBrush.cs
- DoubleCollection.cs
- SecurityTokenParameters.cs
- MonikerProxyAttribute.cs
- SourceSwitch.cs
- RuntimeHelpers.cs
- IsolatedStorageFileStream.cs
- CallbackDebugBehavior.cs
- TextServicesManager.cs
- XmlSignatureProperties.cs
- ControlPropertyNameConverter.cs
- IdentifierService.cs
- CultureSpecificCharacterBufferRange.cs
- MimeBasePart.cs