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
- SchemaLookupTable.cs
- ThreadStateException.cs
- XmlRootAttribute.cs
- DBSchemaTable.cs
- PageAdapter.cs
- Propagator.cs
- UniqueIdentifierService.cs
- WorkflowServiceNamespace.cs
- ComplexLine.cs
- Localizer.cs
- MatrixConverter.cs
- EastAsianLunisolarCalendar.cs
- SqlDependencyListener.cs
- TabControlAutomationPeer.cs
- X509Certificate.cs
- ObjectListDesigner.cs
- ClaimTypeElementCollection.cs
- ParallelDesigner.cs
- MULTI_QI.cs
- MissingManifestResourceException.cs
- PagesChangedEventArgs.cs
- SqlParameterCollection.cs
- ReadingWritingEntityEventArgs.cs
- ApplyTemplatesAction.cs
- HttpAsyncResult.cs
- ContentPathSegment.cs
- OdbcEnvironment.cs
- ScrollProperties.cs
- EntitySqlException.cs
- MatrixTransform3D.cs
- FirstMatchCodeGroup.cs
- KeySplineConverter.cs
- ResourcePart.cs
- SchemaNamespaceManager.cs
- ImportContext.cs
- XmlSerializableReader.cs
- CaseInsensitiveComparer.cs
- XmlSchemaElement.cs
- QilExpression.cs
- RawStylusActions.cs
- TaskFormBase.cs
- GetMemberBinder.cs
- BeginSelectCardRequest.cs
- WebServiceAttribute.cs
- ServiceProviders.cs
- VectorAnimationBase.cs
- TraceSection.cs
- DocumentsTrace.cs
- FormViewCommandEventArgs.cs
- SingleTagSectionHandler.cs
- GradientPanel.cs
- IIS7WorkerRequest.cs
- CompatibleComparer.cs
- ContractCodeDomInfo.cs
- DiscoveryServerProtocol.cs
- _NestedSingleAsyncResult.cs
- Command.cs
- ClassHandlersStore.cs
- ProcessThreadCollection.cs
- CannotUnloadAppDomainException.cs
- WindowsIPAddress.cs
- DataControlFieldCollection.cs
- ToolStripComboBox.cs
- ModuleBuilder.cs
- TransactionChannelFactory.cs
- PersistenceTypeAttribute.cs
- StylusOverProperty.cs
- MessageEventSubscriptionService.cs
- PersonalizationStateQuery.cs
- FontSourceCollection.cs
- StructuralComparisons.cs
- AppSettingsSection.cs
- CountdownEvent.cs
- PersistenceParticipant.cs
- Normalizer.cs
- SqlTriggerAttribute.cs
- SmiEventStream.cs
- QilPatternFactory.cs
- TreeView.cs
- SqlResolver.cs
- StringValueSerializer.cs
- PlacementWorkspace.cs
- StickyNoteHelper.cs
- FormClosingEvent.cs
- MemoryRecordBuffer.cs
- ExclusiveTcpListener.cs
- httpserverutility.cs
- MetaTable.cs
- FormsAuthenticationUserCollection.cs
- RequiredAttributeAttribute.cs
- ArrayList.cs
- TdsParserStateObject.cs
- ModuleBuilderData.cs
- MetaChildrenColumn.cs
- StringUtil.cs
- HtmlHead.cs
- HtmlTernaryTree.cs
- CancellationTokenSource.cs
- EntityDataSourceQueryBuilder.cs
- Timeline.cs