Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WindowsToolbarItemAsMenuItem.cs
- AppliedDeviceFiltersEditor.cs
- TemplateControlCodeDomTreeGenerator.cs
- TextEditorContextMenu.cs
- SpotLight.cs
- SqlInternalConnection.cs
- MergeFailedEvent.cs
- DesignerFrame.cs
- EncodingTable.cs
- RemoteWebConfigurationHost.cs
- WebConfigurationHostFileChange.cs
- FileInfo.cs
- BitmapVisualManager.cs
- TextRange.cs
- CatalogZone.cs
- Polyline.cs
- AuthorizationRule.cs
- SiteIdentityPermission.cs
- HtmlInputButton.cs
- GridViewCellAutomationPeer.cs
- _HTTPDateParse.cs
- InvalidAsynchronousStateException.cs
- DeflateInput.cs
- CollectionBuilder.cs
- SqlDataReader.cs
- ContentPresenter.cs
- ControlEvent.cs
- StrokeNode.cs
- HasCopySemanticsAttribute.cs
- WindowsScrollBar.cs
- NodeInfo.cs
- StorageAssociationTypeMapping.cs
- ImageSource.cs
- URL.cs
- BinaryNode.cs
- AppDomainCompilerProxy.cs
- ScrollBarRenderer.cs
- TextStore.cs
- AnonymousIdentificationSection.cs
- MimeBasePart.cs
- PkcsUtils.cs
- SqlUtils.cs
- AssociatedControlConverter.cs
- ValueChangedEventManager.cs
- CollaborationHelperFunctions.cs
- TraversalRequest.cs
- PerformanceCounterLib.cs
- StackOverflowException.cs
- EraserBehavior.cs
- PriorityBindingExpression.cs
- OdbcStatementHandle.cs
- KerberosSecurityTokenProvider.cs
- InitializerFacet.cs
- LoginCancelEventArgs.cs
- WizardStepBase.cs
- MemberAccessException.cs
- VirtualDirectoryMapping.cs
- RenderData.cs
- CollectionViewGroupInternal.cs
- BuildProvider.cs
- Menu.cs
- LayoutDump.cs
- TemplatedAdorner.cs
- KeyValuePair.cs
- PeerObject.cs
- AutoResetEvent.cs
- ModuleConfigurationInfo.cs
- LocalFileSettingsProvider.cs
- RTLAwareMessageBox.cs
- TraceUtils.cs
- DataObject.cs
- CorrelationQueryBehavior.cs
- HttpCachePolicy.cs
- RepeaterItemCollection.cs
- TextParagraphProperties.cs
- AuthorizationRuleCollection.cs
- HtmlUtf8RawTextWriter.cs
- VisualBasicImportReference.cs
- Buffer.cs
- PassportAuthenticationModule.cs
- InteropAutomationProvider.cs
- Exceptions.cs
- PersonalizationAdministration.cs
- WindowsTokenRoleProvider.cs
- XD.cs
- EnumType.cs
- ProxyWebPart.cs
- ReaderOutput.cs
- basecomparevalidator.cs
- TimeoutTimer.cs
- Normalization.cs
- X509CertificateCollection.cs
- HostedImpersonationContext.cs
- ComPlusInstanceProvider.cs
- XmlQueryOutput.cs
- UncommonField.cs
- ToggleButton.cs
- ConfigXmlAttribute.cs
- DbParameterCollectionHelper.cs
- FlowPosition.cs