Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / Configuration / HttpHandlerAction.cs / 5 / HttpHandlerAction.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.IO;
using System.Text;
using System.Web.Util;
using System.Web.Compilation;
using System.Globalization;
using System.Security.Permissions;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class HttpHandlerAction : ConfigurationElement {
private static ConfigurationPropertyCollection _properties;
private static readonly ConfigurationProperty _propPath =
new ConfigurationProperty("path",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
private static readonly ConfigurationProperty _propVerb =
new ConfigurationProperty("verb",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
private static readonly ConfigurationProperty _propType =
new ConfigurationProperty("type",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.IsRequired);
private static readonly ConfigurationProperty _propValidate =
new ConfigurationProperty("validate",
typeof(bool),
true,
ConfigurationPropertyOptions.None);
private Wildcard _requestType;
private WildcardUrl _path;
private Type _type;
private string typeCache = null;
static HttpHandlerAction() {
_properties = new ConfigurationPropertyCollection();
_properties.Add(_propPath);
_properties.Add(_propVerb);
_properties.Add(_propType);
_properties.Add(_propValidate);
}
public HttpHandlerAction(String path, String type, String verb)
: this(path, type, verb, true) {
}
public HttpHandlerAction(String path, String type, String verb, bool validate) {
Path = path;
Type = type;
Verb = verb;
Validate = validate;
}
internal HttpHandlerAction() {
}
internal string Key {
get {
return "verb=" + Verb + " | path=" + Path;
}
}
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
[ConfigurationProperty("path", IsRequired = true, IsKey = true)]
public string Path {
get {
return (string)base[_propPath];
}
set {
base[_propPath] = value;
}
}
[ConfigurationProperty("verb", IsRequired = true, IsKey = true)]
public string Verb {
get {
return (string)base[_propVerb];
}
set {
base[_propVerb] = value;
}
}
[ConfigurationProperty("type", IsRequired = true)]
public string Type {
get {
if (typeCache == null)
typeCache = (string)base[_propType];
return typeCache;
}
set {
base[_propType] = value;
typeCache = value;
}
}
internal Type TypeInternal {
get {
return _type;
}
}
[ConfigurationProperty("validate", DefaultValue = true)]
public bool Validate {
get {
return (bool)base[_propValidate];
}
set {
base[_propValidate] = value;
}
}
internal void InitValidateInternal() {
string verb = Verb;
// Remove all spaces from verbs before wildcard parsing.
// - We don't want get in "POST, GET" to be parsed into " GET".
verb = verb.Replace(" ", String.Empty); // replace all " " with String.Empty in requestType
_requestType = new Wildcard(verb, false); // case-sensitive wildcard
_path = new WildcardUrl(Path, true); // case-insensitive URL wildcard
// if validate="false" is marked on a handler, then the type isn't created until a request
// is actually made that requires the handler. This (1) allows us to list handlers that
// aren't present without throwing errors at init time and (2) speeds up init by avoiding
// loading types until they are needed.
if (!Validate) {
_type = null;
}
else {
_type = ConfigUtil.GetType(Type, "type", this);
if (!ConfigUtil.IsTypeHandlerOrFactory(_type)) {
throw new ConfigurationErrorsException(
SR.GetString(SR.Type_not_factory_or_handler, Type),
ElementInformation.Source, ElementInformation.LineNumber);
}
}
}
internal bool IsMatch(String verb, VirtualPath path) {
return (_path.IsSuffix(path.VirtualPathString) && _requestType.IsMatch(verb));
}
internal Object Create() {
// HACKHACK: for now, let uncreatable types through and error later (for .soap factory)
// This design should change - developers will want to know immediately
// when they misspell a type
if (_type == null) {
Type t = ConfigUtil.GetType(Type, "type", this);
// throw for bad types in deferred case
if (!ConfigUtil.IsTypeHandlerOrFactory(t)) {
throw new ConfigurationErrorsException(
SR.GetString(SR.Type_not_factory_or_handler, Type),
ElementInformation.Source, ElementInformation.LineNumber);
}
_type = t;
}
return HttpRuntime.CreateNonPublicInstance(_type);
}
}
}
// 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.IO;
using System.Text;
using System.Web.Util;
using System.Web.Compilation;
using System.Globalization;
using System.Security.Permissions;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class HttpHandlerAction : ConfigurationElement {
private static ConfigurationPropertyCollection _properties;
private static readonly ConfigurationProperty _propPath =
new ConfigurationProperty("path",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
private static readonly ConfigurationProperty _propVerb =
new ConfigurationProperty("verb",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
private static readonly ConfigurationProperty _propType =
new ConfigurationProperty("type",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.IsRequired);
private static readonly ConfigurationProperty _propValidate =
new ConfigurationProperty("validate",
typeof(bool),
true,
ConfigurationPropertyOptions.None);
private Wildcard _requestType;
private WildcardUrl _path;
private Type _type;
private string typeCache = null;
static HttpHandlerAction() {
_properties = new ConfigurationPropertyCollection();
_properties.Add(_propPath);
_properties.Add(_propVerb);
_properties.Add(_propType);
_properties.Add(_propValidate);
}
public HttpHandlerAction(String path, String type, String verb)
: this(path, type, verb, true) {
}
public HttpHandlerAction(String path, String type, String verb, bool validate) {
Path = path;
Type = type;
Verb = verb;
Validate = validate;
}
internal HttpHandlerAction() {
}
internal string Key {
get {
return "verb=" + Verb + " | path=" + Path;
}
}
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
[ConfigurationProperty("path", IsRequired = true, IsKey = true)]
public string Path {
get {
return (string)base[_propPath];
}
set {
base[_propPath] = value;
}
}
[ConfigurationProperty("verb", IsRequired = true, IsKey = true)]
public string Verb {
get {
return (string)base[_propVerb];
}
set {
base[_propVerb] = value;
}
}
[ConfigurationProperty("type", IsRequired = true)]
public string Type {
get {
if (typeCache == null)
typeCache = (string)base[_propType];
return typeCache;
}
set {
base[_propType] = value;
typeCache = value;
}
}
internal Type TypeInternal {
get {
return _type;
}
}
[ConfigurationProperty("validate", DefaultValue = true)]
public bool Validate {
get {
return (bool)base[_propValidate];
}
set {
base[_propValidate] = value;
}
}
internal void InitValidateInternal() {
string verb = Verb;
// Remove all spaces from verbs before wildcard parsing.
// - We don't want get in "POST, GET" to be parsed into " GET".
verb = verb.Replace(" ", String.Empty); // replace all " " with String.Empty in requestType
_requestType = new Wildcard(verb, false); // case-sensitive wildcard
_path = new WildcardUrl(Path, true); // case-insensitive URL wildcard
// if validate="false" is marked on a handler, then the type isn't created until a request
// is actually made that requires the handler. This (1) allows us to list handlers that
// aren't present without throwing errors at init time and (2) speeds up init by avoiding
// loading types until they are needed.
if (!Validate) {
_type = null;
}
else {
_type = ConfigUtil.GetType(Type, "type", this);
if (!ConfigUtil.IsTypeHandlerOrFactory(_type)) {
throw new ConfigurationErrorsException(
SR.GetString(SR.Type_not_factory_or_handler, Type),
ElementInformation.Source, ElementInformation.LineNumber);
}
}
}
internal bool IsMatch(String verb, VirtualPath path) {
return (_path.IsSuffix(path.VirtualPathString) && _requestType.IsMatch(verb));
}
internal Object Create() {
// HACKHACK: for now, let uncreatable types through and error later (for .soap factory)
// This design should change - developers will want to know immediately
// when they misspell a type
if (_type == null) {
Type t = ConfigUtil.GetType(Type, "type", this);
// throw for bad types in deferred case
if (!ConfigUtil.IsTypeHandlerOrFactory(t)) {
throw new ConfigurationErrorsException(
SR.GetString(SR.Type_not_factory_or_handler, Type),
ElementInformation.Source, ElementInformation.LineNumber);
}
_type = t;
}
return HttpRuntime.CreateNonPublicInstance(_type);
}
}
}
// 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
- GeneratedView.cs
- TextEditorContextMenu.cs
- SafeBitVector32.cs
- LoginAutoFormat.cs
- PassportAuthenticationEventArgs.cs
- DataColumnSelectionConverter.cs
- UnmanagedMemoryStreamWrapper.cs
- ItemList.cs
- DataGridViewRowPostPaintEventArgs.cs
- BuildManager.cs
- TextClipboardData.cs
- ConstraintConverter.cs
- ConversionContext.cs
- EmissiveMaterial.cs
- ZipIOLocalFileBlock.cs
- SqlGenerator.cs
- SID.cs
- TextContainerChangedEventArgs.cs
- IisTraceListener.cs
- InkCanvasSelectionAdorner.cs
- ConfigurationManagerHelper.cs
- SerializationObjectManager.cs
- RelatedView.cs
- ConnectionManagementElement.cs
- CapabilitiesPattern.cs
- ResourceProviderFactory.cs
- X509Utils.cs
- FormatSelectingMessageInspector.cs
- IpcClientChannel.cs
- M3DUtil.cs
- ListViewItemSelectionChangedEvent.cs
- MethodExpr.cs
- MessageHeaderException.cs
- SqlDataSourceQuery.cs
- WebContext.cs
- XamlBrushSerializer.cs
- BStrWrapper.cs
- SortableBindingList.cs
- ResourcePool.cs
- Stack.cs
- mansign.cs
- WebAdminConfigurationHelper.cs
- DropShadowBitmapEffect.cs
- ColorConvertedBitmap.cs
- ClientCredentials.cs
- JsonFormatMapping.cs
- OleDbErrorCollection.cs
- StylusButtonCollection.cs
- StructuralObject.cs
- LocalizabilityAttribute.cs
- TextBoxView.cs
- DataIdProcessor.cs
- BitmapPalettes.cs
- ConfigurationManagerHelperFactory.cs
- BitmapDownload.cs
- MonitoringDescriptionAttribute.cs
- EventData.cs
- CommonDialog.cs
- IsolationInterop.cs
- BufferedResponseStream.cs
- StaticSiteMapProvider.cs
- PeerNameResolver.cs
- PropertyTabChangedEvent.cs
- Journal.cs
- GridViewCommandEventArgs.cs
- Claim.cs
- ValuePattern.cs
- ChameleonKey.cs
- ParseChildrenAsPropertiesAttribute.cs
- EncryptedXml.cs
- Documentation.cs
- PathFigureCollectionConverter.cs
- TextRangeEditLists.cs
- StateItem.cs
- WebPartMovingEventArgs.cs
- LexicalChunk.cs
- XmlSchemaValidator.cs
- WorkflowStateRollbackService.cs
- RSAOAEPKeyExchangeDeformatter.cs
- DataGridViewDataConnection.cs
- BookmarkUndoUnit.cs
- sitestring.cs
- ContractMapping.cs
- _IPv6Address.cs
- HybridObjectCache.cs
- HatchBrush.cs
- DataGridBoolColumn.cs
- ApplicationHost.cs
- TripleDESCryptoServiceProvider.cs
- NativeMethods.cs
- DesignTimeType.cs
- Marshal.cs
- XmlSignatureManifest.cs
- CodeNamespaceImport.cs
- sapiproxy.cs
- InternalDispatchObject.cs
- ButtonField.cs
- DataViewManager.cs
- JsonReader.cs
- QilFactory.cs