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
- ChtmlCalendarAdapter.cs
- SafeMILHandleMemoryPressure.cs
- UIElement.cs
- Range.cs
- ServiceHostingEnvironmentSection.cs
- ExpressionEditorAttribute.cs
- WizardForm.cs
- WebDisplayNameAttribute.cs
- OleDbDataAdapter.cs
- MailWebEventProvider.cs
- RC2.cs
- UICuesEvent.cs
- TextElementCollectionHelper.cs
- TextSearch.cs
- NameObjectCollectionBase.cs
- AnnotationService.cs
- WebMethodAttribute.cs
- SqlDataSourceSelectingEventArgs.cs
- SmtpReplyReaderFactory.cs
- TextBox.cs
- DataConnectionHelper.cs
- PointAnimation.cs
- TypeValidationEventArgs.cs
- SizeF.cs
- SerializationInfoEnumerator.cs
- ImageField.cs
- ListBoxChrome.cs
- CheckBoxList.cs
- Pen.cs
- ToolStripSeparator.cs
- configsystem.cs
- ComplusTypeValidator.cs
- ForceCopyBuildProvider.cs
- ClipboardData.cs
- UnmanagedHandle.cs
- mda.cs
- StylusDownEventArgs.cs
- LayoutEvent.cs
- ConnectionStringsSection.cs
- ToolStripItemBehavior.cs
- ApplicationContext.cs
- jithelpers.cs
- XmlUtf8RawTextWriter.cs
- RestClientProxyHandler.cs
- ConnectionOrientedTransportBindingElement.cs
- CommandHelpers.cs
- XPathAncestorIterator.cs
- DataGridItem.cs
- RegexCaptureCollection.cs
- Exceptions.cs
- TaskFormBase.cs
- AdapterDictionary.cs
- GlyphCollection.cs
- InkPresenterAutomationPeer.cs
- BitmapEffectInputConnector.cs
- HttpRuntime.cs
- TransactionScopeDesigner.cs
- CacheVirtualItemsEvent.cs
- SmtpReplyReaderFactory.cs
- SerializationEventsCache.cs
- Stack.cs
- DataGridViewRowsRemovedEventArgs.cs
- ElementsClipboardData.cs
- SourceInterpreter.cs
- LayoutDump.cs
- WSDualHttpSecurityMode.cs
- GrammarBuilderDictation.cs
- TextEditorCopyPaste.cs
- X509SubjectKeyIdentifierClause.cs
- PropertyInfoSet.cs
- CodeCatchClauseCollection.cs
- Rijndael.cs
- LongMinMaxAggregationOperator.cs
- CriticalHandle.cs
- SessionEndingEventArgs.cs
- MenuItemBinding.cs
- Debug.cs
- ValidationEventArgs.cs
- CannotUnloadAppDomainException.cs
- SqlCacheDependencyDatabaseCollection.cs
- WsdlInspector.cs
- BindingSource.cs
- ControlBuilderAttribute.cs
- DSASignatureFormatter.cs
- ArrayItemReference.cs
- AttachInfo.cs
- SID.cs
- SqlHelper.cs
- WebPartConnectionsConfigureVerb.cs
- EpmCustomContentSerializer.cs
- DataGridCellsPresenter.cs
- TableLayout.cs
- DeclaredTypeElement.cs
- ExtensibleClassFactory.cs
- TextSpanModifier.cs
- DataGridViewBindingCompleteEventArgs.cs
- HttpSessionStateBase.cs
- UnsafeNativeMethods.cs
- TableCellCollection.cs
- QilLoop.cs