Code:
/ DotNET / DotNET / 8.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
- ReflectionServiceProvider.cs
- SafeLocalMemHandle.cs
- DictionaryKeyPropertyAttribute.cs
- XmlSerializerVersionAttribute.cs
- GridViewDeleteEventArgs.cs
- ResXBuildProvider.cs
- XmlArrayAttribute.cs
- ExtentKey.cs
- WebPartsPersonalizationAuthorization.cs
- MarginsConverter.cs
- DbMetaDataColumnNames.cs
- Pen.cs
- OdbcDataAdapter.cs
- UnsafeNativeMethods.cs
- CodeVariableDeclarationStatement.cs
- UpdateCompiler.cs
- PaintValueEventArgs.cs
- DefaultBinder.cs
- ActionNotSupportedException.cs
- MulticastOption.cs
- FastEncoderWindow.cs
- Composition.cs
- MissingManifestResourceException.cs
- ExceptQueryOperator.cs
- UnmanagedMemoryStream.cs
- DataListCommandEventArgs.cs
- Menu.cs
- TextDecorations.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- UIElementCollection.cs
- Viewport3DAutomationPeer.cs
- ScriptingRoleServiceSection.cs
- SQLByte.cs
- Debug.cs
- UnsafeNativeMethods.cs
- OdbcConnectionStringbuilder.cs
- XmlSchemaChoice.cs
- ScaleTransform3D.cs
- Enum.cs
- ExtenderControl.cs
- OneOfScalarConst.cs
- FormsAuthenticationUser.cs
- InternalControlCollection.cs
- Debug.cs
- Vector3DValueSerializer.cs
- MouseOverProperty.cs
- IconConverter.cs
- UIElement.cs
- ReceiveMessageAndVerifySecurityAsyncResultBase.cs
- XsltArgumentList.cs
- FilePresentation.cs
- OpCellTreeNode.cs
- WebPartsPersonalization.cs
- ServiceReference.cs
- ScrollBar.cs
- SQLMoney.cs
- ProcessProtocolHandler.cs
- HttpDictionary.cs
- DispatchChannelSink.cs
- PageCodeDomTreeGenerator.cs
- ObjectDisposedException.cs
- DataTableClearEvent.cs
- RequestCacheValidator.cs
- FixedSOMContainer.cs
- OleDbFactory.cs
- PrinterSettings.cs
- ImmutableObjectAttribute.cs
- XmlSchemaValidationException.cs
- _Win32.cs
- DataChangedEventManager.cs
- PropagatorResult.cs
- UnlockInstanceAsyncResult.cs
- DesignTimeTemplateParser.cs
- DetailsViewDeleteEventArgs.cs
- IsolationInterop.cs
- XsltException.cs
- COM2Enum.cs
- PlacementWorkspace.cs
- PreProcessInputEventArgs.cs
- ParagraphResult.cs
- SafeCertificateContext.cs
- ApplicationServicesHostFactory.cs
- Util.cs
- TreeViewHitTestInfo.cs
- ProcessHostConfigUtils.cs
- WhitespaceRule.cs
- IRCollection.cs
- SessionSwitchEventArgs.cs
- ByteAnimationBase.cs
- MULTI_QI.cs
- ListSortDescriptionCollection.cs
- TextBoxDesigner.cs
- ToolStripProgressBar.cs
- InvokeSchedule.cs
- ActivityWithResultWrapper.cs
- _Events.cs
- MsmqIntegrationBindingElement.cs
- DataGridColumnHeadersPresenter.cs
- Console.cs
- BreakSafeBase.cs