Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UrlMappingsModule.cs / 1 / 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
- XMLSyntaxException.cs
- StickyNoteContentControl.cs
- DataGridViewAdvancedBorderStyle.cs
- DataServiceKeyAttribute.cs
- xmlformatgeneratorstatics.cs
- MulticastNotSupportedException.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- SafeFileMappingHandle.cs
- HttpHandlersSection.cs
- IgnoreDeviceFilterElementCollection.cs
- ManualResetEvent.cs
- MessageContractAttribute.cs
- MDIWindowDialog.cs
- SrgsSemanticInterpretationTag.cs
- TextRangeAdaptor.cs
- GridViewRow.cs
- WsiProfilesElementCollection.cs
- IPAddressCollection.cs
- ConnectionStringSettings.cs
- ConnectionInterfaceCollection.cs
- ColorTranslator.cs
- SqlNotificationEventArgs.cs
- MouseCaptureWithinProperty.cs
- ColumnBinding.cs
- StandardCommands.cs
- WebPartEditorOkVerb.cs
- ParameterDataSourceExpression.cs
- DescriptionAttribute.cs
- ReadOnlyTernaryTree.cs
- WindowsContainer.cs
- XmlSchemaSequence.cs
- PathGradientBrush.cs
- EdmPropertyAttribute.cs
- DesignerAutoFormat.cs
- ObjectConverter.cs
- RenderCapability.cs
- MSAANativeProvider.cs
- WebSysDefaultValueAttribute.cs
- ControlDesigner.cs
- DbgUtil.cs
- LinkArea.cs
- DataGridViewDataErrorEventArgs.cs
- FileVersionInfo.cs
- GC.cs
- SqlGatherProducedAliases.cs
- ComponentDispatcher.cs
- WindowsAltTab.cs
- HandlerBase.cs
- TypeBuilder.cs
- RuntimeHelpers.cs
- Monitor.cs
- SchemaNamespaceManager.cs
- QueryCacheEntry.cs
- Attributes.cs
- SearchForVirtualItemEventArgs.cs
- XmlText.cs
- MenuItem.cs
- ColorTransform.cs
- Object.cs
- CodeAttributeArgumentCollection.cs
- DataStreams.cs
- TreeView.cs
- LabelDesigner.cs
- CodeGeneratorOptions.cs
- SessionStateModule.cs
- DataGridViewRow.cs
- FileResponseElement.cs
- SqlXml.cs
- EventHandlersStore.cs
- PackageProperties.cs
- SqlNotificationEventArgs.cs
- WebPartDeleteVerb.cs
- TextFormatterHost.cs
- ToolboxSnapDragDropEventArgs.cs
- ReachBasicContext.cs
- TreeViewImageKeyConverter.cs
- RequestCacheValidator.cs
- SqlProviderManifest.cs
- XmlSchemaExporter.cs
- SocketInformation.cs
- NetStream.cs
- XmlSchemaSimpleTypeList.cs
- AuthenticationServiceManager.cs
- Attribute.cs
- PeerNameRegistration.cs
- ObjectAssociationEndMapping.cs
- ConfigXmlWhitespace.cs
- RangeContentEnumerator.cs
- CompatibleIComparer.cs
- ProcessManager.cs
- XmlMtomReader.cs
- FormsAuthenticationConfiguration.cs
- StreamInfo.cs
- CompositeFontParser.cs
- VisualStates.cs
- AppSettingsReader.cs
- CapabilitiesRule.cs
- GetWinFXPath.cs
- AsymmetricSecurityBindingElement.cs
- ConvertersCollection.cs