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
- UnicastIPAddressInformationCollection.cs
- HttpContext.cs
- Grant.cs
- TrackingStringDictionary.cs
- RTLAwareMessageBox.cs
- RadialGradientBrush.cs
- SharingService.cs
- FormViewModeEventArgs.cs
- RuntimeHandles.cs
- NativeMethodsCLR.cs
- Expressions.cs
- HealthMonitoringSectionHelper.cs
- XamlToRtfWriter.cs
- KeyInfo.cs
- DurableEnlistmentState.cs
- RemotingConfiguration.cs
- XmlNodeList.cs
- ExtendedTransformFactory.cs
- ColorTransformHelper.cs
- wmiutil.cs
- ClientSettingsStore.cs
- RuntimeHandles.cs
- GeometryValueSerializer.cs
- Funcletizer.cs
- PropertyTabAttribute.cs
- StringValidatorAttribute.cs
- CacheForPrimitiveTypes.cs
- TreeNodeMouseHoverEvent.cs
- DBConnection.cs
- StreamGeometry.cs
- WindowsListViewScroll.cs
- KeyInfo.cs
- SQLString.cs
- EntityDesignerUtils.cs
- SmiTypedGetterSetter.cs
- SQLRoleProvider.cs
- WeakReferenceEnumerator.cs
- PartialArray.cs
- Separator.cs
- DbQueryCommandTree.cs
- Message.cs
- ScriptResourceInfo.cs
- SendKeys.cs
- SymLanguageVendor.cs
- NameValuePair.cs
- messageonlyhwndwrapper.cs
- ConfigXmlSignificantWhitespace.cs
- loginstatus.cs
- HtmlInputReset.cs
- SqlCaseSimplifier.cs
- SQLInt16Storage.cs
- EntityDataSourceContextDisposingEventArgs.cs
- CodeEntryPointMethod.cs
- ViewGenerator.cs
- KeyEvent.cs
- UnitySerializationHolder.cs
- SoapElementAttribute.cs
- TextTreeRootNode.cs
- SelectorAutomationPeer.cs
- NativeRightsManagementAPIsStructures.cs
- NTAccount.cs
- RadioButtonFlatAdapter.cs
- ExclusiveCanonicalizationTransform.cs
- PrePostDescendentsWalker.cs
- InstanceDataCollection.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- ExecutionScope.cs
- UpdatePanelControlTrigger.cs
- COM2TypeInfoProcessor.cs
- TreePrinter.cs
- RowsCopiedEventArgs.cs
- ReadOnlyPropertyMetadata.cs
- ErrorHandler.cs
- DelegateSerializationHolder.cs
- StringAnimationBase.cs
- CommandBinding.cs
- EndpointDiscoveryMetadata.cs
- LockedBorderGlyph.cs
- ScriptingSectionGroup.cs
- ParallelTimeline.cs
- TimeoutValidationAttribute.cs
- EntityDataSourceContextCreatingEventArgs.cs
- ExitEventArgs.cs
- DSASignatureDeformatter.cs
- ByteStreamMessage.cs
- LocatorPartList.cs
- SerialStream.cs
- WinFormsSpinner.cs
- ProgressBarRenderer.cs
- PrintDialogException.cs
- ResourceWriter.cs
- SqlUtils.cs
- SqlConnectionPoolProviderInfo.cs
- HttpResponse.cs
- ControlDesigner.cs
- AliasedSlot.cs
- JsonReader.cs
- XsltSettings.cs
- DriveInfo.cs
- ToolStripRenderer.cs