Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / Configuration / CodeSubDirectory.cs / 5 / CodeSubDirectory.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.Globalization; using System.IO; using System.Text; using System.Web.Compilation; using System.Reflection; using System.Web.Hosting; using System.Web.UI; using System.CodeDom.Compiler; using System.Web.Util; using System.ComponentModel; using System.Security.Permissions; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class CodeSubDirectory : ConfigurationElement { private const string dirNameAttribName = "directoryName"; private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propDirectoryName = new ConfigurationProperty(dirNameAttribName, typeof(string), null, StdValidatorsAndConverters.WhiteSpaceTrimStringConverter, StdValidatorsAndConverters.NonEmptyStringValidator, ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey); static CodeSubDirectory() { _properties = new ConfigurationPropertyCollection(); _properties.Add(_propDirectoryName); } internal CodeSubDirectory() { } public CodeSubDirectory(string directoryName) { DirectoryName = directoryName; } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty(dirNameAttribName, IsRequired = true, IsKey = true, DefaultValue = "")] [TypeConverter(typeof(WhiteSpaceTrimStringConverter))] public string DirectoryName { get { return (string)base[_propDirectoryName]; } set { base[_propDirectoryName] = value; } } // The assembly is named after the directory internal string AssemblyName { get { return DirectoryName; } } // Validate the element for runtime use internal void DoRuntimeValidation() { string directoryName = DirectoryName; // If the app is precompiled, don't attempt further validation, sine the directory // will not actually exist (VSWhidbey 394333) if (BuildManager.IsPrecompiledApp) { return; } // Make sure it's just a valid simple directory name if (!Util.IsValidFileName(directoryName)) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_CodeSubDirectory, directoryName), ElementInformation.Properties[dirNameAttribName].Source, ElementInformation.Properties[dirNameAttribName].LineNumber); } VirtualPath codeVirtualSubDir = HttpRuntime.CodeDirectoryVirtualPath.SimpleCombineWithDir(directoryName); // Make sure the specified directory exists if (!VirtualPathProvider.DirectoryExistsNoThrow(codeVirtualSubDir)) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_CodeSubDirectory_Not_Exist, codeVirtualSubDir), ElementInformation.Properties[dirNameAttribName].Source, ElementInformation.Properties[dirNameAttribName].LineNumber); } // Look at the actual physical dir to get its name canonicalized (VSWhidbey 288568) string physicalDir = codeVirtualSubDir.MapPathInternal(); FindFileData ffd; FindFileData.FindFile(physicalDir, out ffd); // If the name was not canonical, reject it if (!StringUtil.EqualsIgnoreCase(directoryName, ffd.FileNameLong)) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_CodeSubDirectory, directoryName), ElementInformation.Properties[dirNameAttribName].Source, ElementInformation.Properties[dirNameAttribName].LineNumber); } if (BuildManager.IsReservedAssemblyName(directoryName)) { throw new ConfigurationErrorsException( SR.GetString(SR.Reserved_AssemblyName, directoryName), ElementInformation.Properties[dirNameAttribName].Source, ElementInformation.Properties[dirNameAttribName].LineNumber); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.Globalization; using System.IO; using System.Text; using System.Web.Compilation; using System.Reflection; using System.Web.Hosting; using System.Web.UI; using System.CodeDom.Compiler; using System.Web.Util; using System.ComponentModel; using System.Security.Permissions; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class CodeSubDirectory : ConfigurationElement { private const string dirNameAttribName = "directoryName"; private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propDirectoryName = new ConfigurationProperty(dirNameAttribName, typeof(string), null, StdValidatorsAndConverters.WhiteSpaceTrimStringConverter, StdValidatorsAndConverters.NonEmptyStringValidator, ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey); static CodeSubDirectory() { _properties = new ConfigurationPropertyCollection(); _properties.Add(_propDirectoryName); } internal CodeSubDirectory() { } public CodeSubDirectory(string directoryName) { DirectoryName = directoryName; } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty(dirNameAttribName, IsRequired = true, IsKey = true, DefaultValue = "")] [TypeConverter(typeof(WhiteSpaceTrimStringConverter))] public string DirectoryName { get { return (string)base[_propDirectoryName]; } set { base[_propDirectoryName] = value; } } // The assembly is named after the directory internal string AssemblyName { get { return DirectoryName; } } // Validate the element for runtime use internal void DoRuntimeValidation() { string directoryName = DirectoryName; // If the app is precompiled, don't attempt further validation, sine the directory // will not actually exist (VSWhidbey 394333) if (BuildManager.IsPrecompiledApp) { return; } // Make sure it's just a valid simple directory name if (!Util.IsValidFileName(directoryName)) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_CodeSubDirectory, directoryName), ElementInformation.Properties[dirNameAttribName].Source, ElementInformation.Properties[dirNameAttribName].LineNumber); } VirtualPath codeVirtualSubDir = HttpRuntime.CodeDirectoryVirtualPath.SimpleCombineWithDir(directoryName); // Make sure the specified directory exists if (!VirtualPathProvider.DirectoryExistsNoThrow(codeVirtualSubDir)) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_CodeSubDirectory_Not_Exist, codeVirtualSubDir), ElementInformation.Properties[dirNameAttribName].Source, ElementInformation.Properties[dirNameAttribName].LineNumber); } // Look at the actual physical dir to get its name canonicalized (VSWhidbey 288568) string physicalDir = codeVirtualSubDir.MapPathInternal(); FindFileData ffd; FindFileData.FindFile(physicalDir, out ffd); // If the name was not canonical, reject it if (!StringUtil.EqualsIgnoreCase(directoryName, ffd.FileNameLong)) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_CodeSubDirectory, directoryName), ElementInformation.Properties[dirNameAttribName].Source, ElementInformation.Properties[dirNameAttribName].LineNumber); } if (BuildManager.IsReservedAssemblyName(directoryName)) { throw new ConfigurationErrorsException( SR.GetString(SR.Reserved_AssemblyName, directoryName), ElementInformation.Properties[dirNameAttribName].Source, ElementInformation.Properties[dirNameAttribName].LineNumber); } } } } // 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
- GridViewItemAutomationPeer.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- ImageDrawing.cs
- SettingsBindableAttribute.cs
- Paragraph.cs
- WebPartDisplayModeCancelEventArgs.cs
- OuterGlowBitmapEffect.cs
- Matrix3DConverter.cs
- ProfileService.cs
- AmbientLight.cs
- PtsCache.cs
- RequestBringIntoViewEventArgs.cs
- CellRelation.cs
- XhtmlConformanceSection.cs
- Aes.cs
- NativeMethods.cs
- ForEachAction.cs
- altserialization.cs
- WebPartMenuStyle.cs
- StyleConverter.cs
- CodeRegionDirective.cs
- HwndStylusInputProvider.cs
- ObjectTag.cs
- TransformerInfoCollection.cs
- PerformanceCounterCategory.cs
- DataBindingHandlerAttribute.cs
- UniqueEventHelper.cs
- TextHidden.cs
- DiscoveryDocumentLinksPattern.cs
- ISCIIEncoding.cs
- StreamWriter.cs
- WebPartEditVerb.cs
- TableRowCollection.cs
- XmlWhitespace.cs
- MobileControl.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- XamlVector3DCollectionSerializer.cs
- RightNameExpirationInfoPair.cs
- DataControlFieldHeaderCell.cs
- OleDbPropertySetGuid.cs
- SafeFileHandle.cs
- DrawListViewColumnHeaderEventArgs.cs
- DataGridViewCellStyle.cs
- BooleanProjectedSlot.cs
- SimpleTypeResolver.cs
- _ServiceNameStore.cs
- AspNetHostingPermission.cs
- InProcStateClientManager.cs
- Tile.cs
- TabletDevice.cs
- SmiGettersStream.cs
- AbandonedMutexException.cs
- TargetParameterCountException.cs
- KeyValueInternalCollection.cs
- QilSortKey.cs
- CodeAttributeArgument.cs
- ExtendedPropertyDescriptor.cs
- RuntimeConfigLKG.cs
- WmlImageAdapter.cs
- AppDomainUnloadedException.cs
- RequestCacheManager.cs
- httpapplicationstate.cs
- _BufferOffsetSize.cs
- TriggerAction.cs
- XPathNavigatorKeyComparer.cs
- GZipDecoder.cs
- SizeAnimationClockResource.cs
- FieldBuilder.cs
- LabelLiteral.cs
- MailDefinitionBodyFileNameEditor.cs
- TypeConverterAttribute.cs
- listitem.cs
- EntityStoreSchemaGenerator.cs
- WebPartDescription.cs
- FtpCachePolicyElement.cs
- CSharpCodeProvider.cs
- HelpInfo.cs
- MetafileHeaderWmf.cs
- QueryCacheEntry.cs
- GridViewDeletedEventArgs.cs
- DataGridViewRowEventArgs.cs
- DirectoryGroupQuery.cs
- NavigationHelper.cs
- PropertyNames.cs
- ConditionalAttribute.cs
- ObjectConverter.cs
- SelectionRangeConverter.cs
- SetStoryboardSpeedRatio.cs
- WaitHandleCannotBeOpenedException.cs
- PackageRelationship.cs
- CodeConditionStatement.cs
- InputLangChangeRequestEvent.cs
- Aggregates.cs
- Exceptions.cs
- ModulesEntry.cs
- RoleGroup.cs
- BackStopAuthenticationModule.cs
- DesignTimeValidationFeature.cs
- ValueExpressions.cs
- NativeCppClassAttribute.cs