Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / UrlMappingsModule.cs / 1 / UrlMappingsModule.cs
// 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 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 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 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ConstraintEnumerator.cs
- DefaultSerializationProviderAttribute.cs
- SqlUtils.cs
- RuntimeCompatibilityAttribute.cs
- CodeFieldReferenceExpression.cs
- RecordBuilder.cs
- IconHelper.cs
- PropertySegmentSerializer.cs
- PolyLineSegment.cs
- SmiRecordBuffer.cs
- ToolStripHighContrastRenderer.cs
- XmlChildNodes.cs
- ResourceDictionary.cs
- CodeTypeReferenceExpression.cs
- Int16KeyFrameCollection.cs
- XmlDataCollection.cs
- CustomWebEventKey.cs
- XmlDataImplementation.cs
- StrongNameKeyPair.cs
- FlatButtonAppearance.cs
- Timeline.cs
- SoapBinding.cs
- SecureEnvironment.cs
- StringExpressionSet.cs
- HttpCacheParams.cs
- MobileComponentEditorPage.cs
- IIS7UserPrincipal.cs
- QueryStringParameter.cs
- SQLMoneyStorage.cs
- MailSettingsSection.cs
- EdmValidator.cs
- SiteMapNodeItem.cs
- ToolBarDesigner.cs
- StylusPointPropertyInfoDefaults.cs
- UpDownBase.cs
- RegexCharClass.cs
- MessageEncoder.cs
- SafeSecurityHandles.cs
- AspNetSynchronizationContext.cs
- RNGCryptoServiceProvider.cs
- MergeFilterQuery.cs
- DataRelationCollection.cs
- XPathDescendantIterator.cs
- DataTableNewRowEvent.cs
- SecurityTokenValidationException.cs
- DebugView.cs
- PriorityChain.cs
- Brush.cs
- Misc.cs
- SystemDropShadowChrome.cs
- WebBrowserDocumentCompletedEventHandler.cs
- WinEventHandler.cs
- DataGrid.cs
- SchemaEntity.cs
- ComponentManagerBroker.cs
- SqlUserDefinedTypeAttribute.cs
- TextBlockAutomationPeer.cs
- DbMetaDataColumnNames.cs
- Bezier.cs
- SmtpAuthenticationManager.cs
- DropDownButton.cs
- OutputCache.cs
- InputBinding.cs
- ByeMessageCD1.cs
- Helpers.cs
- X509Chain.cs
- MonikerSyntaxException.cs
- MessageProtectionOrder.cs
- SmiEventSink_Default.cs
- ParentUndoUnit.cs
- InputScopeConverter.cs
- ContextItemManager.cs
- MDIWindowDialog.cs
- XmlNodeChangedEventArgs.cs
- StylusPointDescription.cs
- Parser.cs
- KeyValueSerializer.cs
- PersianCalendar.cs
- BlurEffect.cs
- PersonalizationStateInfo.cs
- OracleCommand.cs
- BamlLocalizer.cs
- PrimitiveType.cs
- ScrollPattern.cs
- FontDifferentiator.cs
- ResourceDisplayNameAttribute.cs
- MediaCommands.cs
- MSHTMLHostUtil.cs
- ExpressionBindingCollection.cs
- QueryCursorEventArgs.cs
- RecognitionEventArgs.cs
- XmlSchemaNotation.cs
- AccessDataSourceView.cs
- TextDecorations.cs
- Internal.cs
- PerformanceCounter.cs
- XXXInfos.cs
- PriorityBindingExpression.cs
- BrowserCapabilitiesFactoryBase.cs
- ResourcePermissionBaseEntry.cs