Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / UrlMappingsModule.cs / 2 / UrlMappingsModule.cs
namespace System.Web { using System; using System.Web; using System.Web.Util; using System.Web.Configuration; // // Module that implements the UrlMappings functionality // on IIS 7 in integrated mode, this takes the place of // the UrlMappings execution step and is listed insealed internal class UrlMappingsModule : IHttpModule { internal UrlMappingsModule() {} public void Init(HttpApplication application) { bool urlMappingsEnabled = false; UrlMappingsSection urlMappings = RuntimeConfig.GetConfig().UrlMappings; urlMappingsEnabled = urlMappings.IsEnabled && ( urlMappings.UrlMappings.Count > 0 ); if (urlMappingsEnabled) { application.BeginRequest += new EventHandler(OnEnter); } } public void Dispose() {} internal void OnEnter(Object source, EventArgs eventArgs) { HttpApplication app = (HttpApplication) source; UrlMappingsSection urlMappings = RuntimeConfig.GetAppConfig().UrlMappings; // First check RawUrl string mappedUrl = urlMappings.HttpResolveMapping(app.Request.RawUrl); // Check Path if not found if (mappedUrl == null) mappedUrl = urlMappings.HttpResolveMapping(app.Request.Path); if (!string.IsNullOrEmpty(mappedUrl)) //&& IsDifferentFromCurrentUrl(mappedUrl, app.Context)) app.Context.RewritePath(mappedUrl, false); } // private static bool IsDifferentFromCurrentUrl(string url, HttpContext context) // { // Uri absUri; // if (!Uri.TryCreate(url, UriKind.Absolute, out absUri)) // { // if (url.StartsWith("~/")) // url = UrlPath.Combine(context.Request.Path, url.Substring(2)); // if (!Uri.TryCreate(context.Request.Url, url, out absUri)) // return true; // } // return Uri.Compare(absUri, context.Request.Url, UriComponents.AbsoluteUri, UriFormat.UriEscaped, StringComparison.OrdinalIgnoreCase) != 0; // } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Web { using System; using System.Web; using System.Web.Util; using System.Web.Configuration; // // Module that implements the UrlMappings functionality // on IIS 7 in integrated mode, this takes the place of // the UrlMappings execution step and is listed in sealed internal class UrlMappingsModule : IHttpModule { internal UrlMappingsModule() {} public void Init(HttpApplication application) { bool urlMappingsEnabled = false; UrlMappingsSection urlMappings = RuntimeConfig.GetConfig().UrlMappings; urlMappingsEnabled = urlMappings.IsEnabled && ( urlMappings.UrlMappings.Count > 0 ); if (urlMappingsEnabled) { application.BeginRequest += new EventHandler(OnEnter); } } public void Dispose() {} internal void OnEnter(Object source, EventArgs eventArgs) { HttpApplication app = (HttpApplication) source; UrlMappingsSection urlMappings = RuntimeConfig.GetAppConfig().UrlMappings; // First check RawUrl string mappedUrl = urlMappings.HttpResolveMapping(app.Request.RawUrl); // Check Path if not found if (mappedUrl == null) mappedUrl = urlMappings.HttpResolveMapping(app.Request.Path); if (!string.IsNullOrEmpty(mappedUrl)) //&& IsDifferentFromCurrentUrl(mappedUrl, app.Context)) app.Context.RewritePath(mappedUrl, false); } // private static bool IsDifferentFromCurrentUrl(string url, HttpContext context) // { // Uri absUri; // if (!Uri.TryCreate(url, UriKind.Absolute, out absUri)) // { // if (url.StartsWith("~/")) // url = UrlPath.Combine(context.Request.Path, url.Substring(2)); // if (!Uri.TryCreate(context.Request.Url, url, out absUri)) // return true; // } // return Uri.Compare(absUri, context.Request.Url, UriComponents.AbsoluteUri, UriFormat.UriEscaped, StringComparison.OrdinalIgnoreCase) != 0; // } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RenderingEventArgs.cs
- DelegateSerializationHolder.cs
- GroupBoxRenderer.cs
- CellCreator.cs
- DrawingAttributeSerializer.cs
- SqlDataSourceConfigureSelectPanel.cs
- PageAsyncTaskManager.cs
- TraceInternal.cs
- _NegoStream.cs
- SaveFileDialog.cs
- TextBoxView.cs
- PointConverter.cs
- ColumnPropertiesGroup.cs
- UTF32Encoding.cs
- ReferentialConstraintRoleElement.cs
- CollectionView.cs
- CaseKeyBox.ViewModel.cs
- FieldMetadata.cs
- Part.cs
- ListViewCommandEventArgs.cs
- Blend.cs
- CheckBoxPopupAdapter.cs
- SuppressIldasmAttribute.cs
- StrongNameKeyPair.cs
- wgx_commands.cs
- StyleConverter.cs
- TriState.cs
- BrowserTree.cs
- DataSourceViewSchemaConverter.cs
- TextWriterTraceListener.cs
- ObfuscateAssemblyAttribute.cs
- DbFunctionCommandTree.cs
- Parameter.cs
- ViewKeyConstraint.cs
- CodeExpressionRuleDeclaration.cs
- FreezableOperations.cs
- MarkupExtensionReturnTypeAttribute.cs
- RoutedUICommand.cs
- TextTreeNode.cs
- LocalizableAttribute.cs
- HandlerFactoryWrapper.cs
- _FixedSizeReader.cs
- Automation.cs
- SiteMapNodeItem.cs
- PathNode.cs
- SqlWebEventProvider.cs
- SafeCertificateStore.cs
- AnnotationResourceCollection.cs
- DbConnectionStringBuilder.cs
- RSACryptoServiceProvider.cs
- SQLStringStorage.cs
- XsdBuildProvider.cs
- DeviceSpecificDesigner.cs
- CachedFontFamily.cs
- ToolStripSystemRenderer.cs
- MultipleViewPattern.cs
- DocumentViewerHelper.cs
- SectionRecord.cs
- OracleException.cs
- PngBitmapEncoder.cs
- ISFTagAndGuidCache.cs
- IncrementalCompileAnalyzer.cs
- DotAtomReader.cs
- TrackingMemoryStreamFactory.cs
- XmlLoader.cs
- Simplifier.cs
- TextMetrics.cs
- XmlDocument.cs
- TrackingStringDictionary.cs
- OptimizedTemplateContentHelper.cs
- InputBuffer.cs
- XmlSchemaInclude.cs
- Size.cs
- Enlistment.cs
- BoundPropertyEntry.cs
- Listen.cs
- CompositeDataBoundControl.cs
- PermissionToken.cs
- NoneExcludedImageIndexConverter.cs
- CompositeActivityValidator.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- Range.cs
- WebPartDisplayMode.cs
- ResXDataNode.cs
- AppDomainManager.cs
- TokenizerHelper.cs
- XPathSingletonIterator.cs
- DispatcherProcessingDisabled.cs
- QuaternionAnimation.cs
- QueueAccessMode.cs
- PageStatePersister.cs
- XmlChoiceIdentifierAttribute.cs
- ContainerTracking.cs
- AddressHeaderCollectionElement.cs
- TextEndOfSegment.cs
- AttachedPropertyBrowsableAttribute.cs
- SmtpLoginAuthenticationModule.cs
- WebPartHelpVerb.cs
- MemberHolder.cs
- CryptoStream.cs