Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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; // } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PointIndependentAnimationStorage.cs
- RubberbandSelector.cs
- ProxyWebPart.cs
- SafeRightsManagementEnvironmentHandle.cs
- AssemblyBuilderData.cs
- Italic.cs
- DataConnectionHelper.cs
- HtmlHead.cs
- UnsafeNativeMethods.cs
- BrowserCapabilitiesFactory.cs
- Attributes.cs
- DetailsViewUpdatedEventArgs.cs
- UpdateException.cs
- IgnoreFlushAndCloseStream.cs
- AncestorChangedEventArgs.cs
- GridView.cs
- TextTreeInsertUndoUnit.cs
- Rss20FeedFormatter.cs
- FindRequestContext.cs
- SubMenuStyleCollection.cs
- ActivityPreviewDesigner.cs
- SqlFunctions.cs
- CommunicationObjectAbortedException.cs
- RuleConditionDialog.Designer.cs
- securitycriticaldataformultiplegetandset.cs
- PeerNameResolver.cs
- MouseGestureValueSerializer.cs
- FieldNameLookup.cs
- InputLanguageCollection.cs
- CasesDictionary.cs
- SynchronizedMessageSource.cs
- MetadataPropertyAttribute.cs
- ClientSettingsStore.cs
- unitconverter.cs
- PenContexts.cs
- SamlSecurityToken.cs
- ProviderIncompatibleException.cs
- ToolboxItemFilterAttribute.cs
- CriticalHandle.cs
- GeneralTransform.cs
- Currency.cs
- XmlSiteMapProvider.cs
- DropSource.cs
- DataGridViewColumnEventArgs.cs
- HMACSHA256.cs
- CSharpCodeProvider.cs
- ConnectionDemuxer.cs
- SevenBitStream.cs
- PriorityRange.cs
- AsyncPostBackErrorEventArgs.cs
- NotificationContext.cs
- BaseUriHelper.cs
- ReferentialConstraintRoleElement.cs
- OpenFileDialog.cs
- SecUtil.cs
- ArglessEventHandlerProxy.cs
- VideoDrawing.cs
- FtpWebResponse.cs
- UriParserTemplates.cs
- TextFormatterHost.cs
- ObjectDataSourceView.cs
- COM2EnumConverter.cs
- CanExecuteRoutedEventArgs.cs
- EqualityComparer.cs
- SettingsPropertyCollection.cs
- CompositeFontInfo.cs
- ToolStripComboBox.cs
- RequiredAttributeAttribute.cs
- HebrewNumber.cs
- PackWebResponse.cs
- RadialGradientBrush.cs
- CaseInsensitiveOrdinalStringComparer.cs
- Header.cs
- Journal.cs
- ApplicationDirectoryMembershipCondition.cs
- CodeBinaryOperatorExpression.cs
- Camera.cs
- DataDocumentXPathNavigator.cs
- TemplatePartAttribute.cs
- ApplicationBuildProvider.cs
- StyleSheetComponentEditor.cs
- TTSEngineProxy.cs
- RijndaelManaged.cs
- ParentUndoUnit.cs
- RealProxy.cs
- GradientStop.cs
- KerberosReceiverSecurityToken.cs
- PolyLineSegmentFigureLogic.cs
- Util.cs
- SynchronizedReadOnlyCollection.cs
- WriteTimeStream.cs
- FontDriver.cs
- XmlSchemaGroupRef.cs
- UnauthorizedAccessException.cs
- BookmarkScope.cs
- TemplateControlBuildProvider.cs
- LambdaCompiler.Address.cs
- DiagnosticTraceSource.cs
- MetadataArtifactLoaderCompositeResource.cs
- MetadataFile.cs