Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Util / RequestValidator.cs / 1305376 / RequestValidator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Base class providing extensibility hooks for custom request validation * * Copyright (c) 2009 Microsoft Corporation */ namespace System.Web.Util { using System; using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Web; using System.Web.Configuration; public class RequestValidator { private static RequestValidator _customValidator; private static readonly Lazy_customValidatorResolver = new Lazy (GetCustomValidatorFromConfig); public static RequestValidator Current { get { if (_customValidator == null) { _customValidator = _customValidatorResolver.Value; } return _customValidator; } set { if (value == null) { throw new ArgumentNullException("value"); } _customValidator = value; } } private static RequestValidator GetCustomValidatorFromConfig() { // App since this is static per AppDomain RuntimeConfig config = RuntimeConfig.GetAppConfig(); HttpRuntimeSection runtimeSection = config.HttpRuntime; string validatorTypeName = runtimeSection.RequestValidationType; // validate the type Type validatorType = ConfigUtil.GetType(validatorTypeName, "requestValidationType", runtimeSection); ConfigUtil.CheckBaseType(typeof(RequestValidator) /* expectedBaseType */, validatorType, "requestValidationType", runtimeSection); // instantiate RequestValidator validator = (RequestValidator)HttpRuntime.CreatePublicInstance(validatorType); return validator; } internal static void InitializeOnFirstRequest() { // instantiate the validator if it hasn't already been created RequestValidator validator = _customValidatorResolver.Value; } private static bool IsAtoZ(char c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); } [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Justification = "This is an appropriate way to return multiple pieces of data.")] protected internal virtual bool IsValidRequestString(HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex) { if (requestValidationSource == RequestValidationSource.Headers) { validationFailureIndex = 0; return true; // Ignore Headers collection in the default implementation } return !CrossSiteScriptingValidation.IsDangerousString(value, out validationFailureIndex); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Base class providing extensibility hooks for custom request validation * * Copyright (c) 2009 Microsoft Corporation */ namespace System.Web.Util { using System; using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Web; using System.Web.Configuration; public class RequestValidator { private static RequestValidator _customValidator; private static readonly Lazy_customValidatorResolver = new Lazy (GetCustomValidatorFromConfig); public static RequestValidator Current { get { if (_customValidator == null) { _customValidator = _customValidatorResolver.Value; } return _customValidator; } set { if (value == null) { throw new ArgumentNullException("value"); } _customValidator = value; } } private static RequestValidator GetCustomValidatorFromConfig() { // App since this is static per AppDomain RuntimeConfig config = RuntimeConfig.GetAppConfig(); HttpRuntimeSection runtimeSection = config.HttpRuntime; string validatorTypeName = runtimeSection.RequestValidationType; // validate the type Type validatorType = ConfigUtil.GetType(validatorTypeName, "requestValidationType", runtimeSection); ConfigUtil.CheckBaseType(typeof(RequestValidator) /* expectedBaseType */, validatorType, "requestValidationType", runtimeSection); // instantiate RequestValidator validator = (RequestValidator)HttpRuntime.CreatePublicInstance(validatorType); return validator; } internal static void InitializeOnFirstRequest() { // instantiate the validator if it hasn't already been created RequestValidator validator = _customValidatorResolver.Value; } private static bool IsAtoZ(char c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); } [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Justification = "This is an appropriate way to return multiple pieces of data.")] protected internal virtual bool IsValidRequestString(HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex) { if (requestValidationSource == RequestValidationSource.Headers) { validationFailureIndex = 0; return true; // Ignore Headers collection in the default implementation } return !CrossSiteScriptingValidation.IsDangerousString(value, out validationFailureIndex); } } } // 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
- TreeNodeSelectionProcessor.cs
- Camera.cs
- DataTableMapping.cs
- unitconverter.cs
- ToolStripGrip.cs
- MenuItemBindingCollection.cs
- MarkupObject.cs
- MDIClient.cs
- XappLauncher.cs
- StreamWithDictionary.cs
- MemberAccessException.cs
- OneOf.cs
- AnnotationObservableCollection.cs
- IntSecurity.cs
- CollectionExtensions.cs
- PasswordRecovery.cs
- DrawTreeNodeEventArgs.cs
- columnmapkeybuilder.cs
- ImageFormatConverter.cs
- SchemaNames.cs
- QuadraticBezierSegment.cs
- BrowserCapabilitiesFactory35.cs
- SafeMarshalContext.cs
- PassportAuthentication.cs
- KeysConverter.cs
- ProviderConnectionPointCollection.cs
- ValidationError.cs
- UpdateCompiler.cs
- Material.cs
- MetricEntry.cs
- ObservableDictionary.cs
- EdmSchemaError.cs
- BuilderInfo.cs
- DynamicQueryableWrapper.cs
- TemplateBindingExtension.cs
- EUCJPEncoding.cs
- TextEditorCharacters.cs
- cache.cs
- DynamicRendererThreadManager.cs
- RemotingAttributes.cs
- Sorting.cs
- SafePEFileHandle.cs
- PkcsMisc.cs
- log.cs
- NavigationProgressEventArgs.cs
- ObjectIDGenerator.cs
- ScriptResourceHandler.cs
- RuleSet.cs
- FieldMetadata.cs
- ToolStripActionList.cs
- TemplateColumn.cs
- Int64KeyFrameCollection.cs
- DeleteMemberBinder.cs
- EDesignUtil.cs
- TypeNameParser.cs
- DetailsViewRow.cs
- RawStylusInputCustomDataList.cs
- UserMapPath.cs
- DrawingContextFlattener.cs
- FilterableAttribute.cs
- XPathAxisIterator.cs
- CodeCompiler.cs
- PackagePartCollection.cs
- ForEachAction.cs
- XmlSerializerFactory.cs
- OuterGlowBitmapEffect.cs
- ScriptReference.cs
- DecimalConverter.cs
- PerformanceCounterScope.cs
- IDispatchConstantAttribute.cs
- GridItemProviderWrapper.cs
- AttachedAnnotation.cs
- DelegateSerializationHolder.cs
- WinFormsSecurity.cs
- _UriTypeConverter.cs
- HttpListenerRequest.cs
- MSAANativeProvider.cs
- FormViewCommandEventArgs.cs
- ExtendedPropertyDescriptor.cs
- _Events.cs
- IdentityManager.cs
- DisplayMemberTemplateSelector.cs
- DictionaryManager.cs
- HtmlFormParameterReader.cs
- LinkLabelLinkClickedEvent.cs
- WebPartConnectVerb.cs
- ReaderWriterLockWrapper.cs
- EnglishPluralizationService.cs
- ProviderBase.cs
- CodeAttributeArgumentCollection.cs
- UserNameSecurityToken.cs
- PackageDigitalSignature.cs
- DatatypeImplementation.cs
- XamlVector3DCollectionSerializer.cs
- SessionState.cs
- Figure.cs
- EventMappingSettings.cs
- WebPartEditorOkVerb.cs
- OleDbErrorCollection.cs
- DataControlPagerLinkButton.cs