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
- XmlChildEnumerator.cs
- MsmqDiagnostics.cs
- CodeSubDirectoriesCollection.cs
- EncryptedKeyIdentifierClause.cs
- ScalarConstant.cs
- DeploymentSection.cs
- SessionSwitchEventArgs.cs
- SharedConnectionInfo.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- VerticalAlignConverter.cs
- ConfigurationManager.cs
- AnonymousIdentificationModule.cs
- CursorConverter.cs
- WindowsListViewItem.cs
- FreeFormPanel.cs
- QilCloneVisitor.cs
- WebControlAdapter.cs
- Msmq.cs
- HtmlElement.cs
- FormattedText.cs
- DropDownList.cs
- Marshal.cs
- ZoomPercentageConverter.cs
- ViewCellRelation.cs
- EntityDataSourceStatementEditor.cs
- IsolatedStorage.cs
- XmlDeclaration.cs
- UDPClient.cs
- SessionStateModule.cs
- srgsitem.cs
- WebPartCatalogCloseVerb.cs
- SynchronizingStream.cs
- AdornerDecorator.cs
- RSAPKCS1SignatureFormatter.cs
- BaseValidatorDesigner.cs
- WindowsGraphicsWrapper.cs
- GeneralTransform3DTo2D.cs
- XmlQueryRuntime.cs
- StrokeCollection2.cs
- RequiredFieldValidator.cs
- ManipulationStartedEventArgs.cs
- XpsResource.cs
- _NegoState.cs
- CqlErrorHelper.cs
- ComplexPropertyEntry.cs
- MimeWriter.cs
- WhitespaceRuleLookup.cs
- Point3DAnimationBase.cs
- AuthorizationRuleCollection.cs
- ListControl.cs
- KeyTime.cs
- Timeline.cs
- Transform.cs
- UIPermission.cs
- DataGridHelper.cs
- WebPartAddingEventArgs.cs
- DetailsViewRow.cs
- StyleBamlRecordReader.cs
- ViewStateException.cs
- DelimitedListTraceListener.cs
- ExtensionDataReader.cs
- RootAction.cs
- CodeTypeOfExpression.cs
- CachedPathData.cs
- BulletedListDesigner.cs
- SharedStatics.cs
- TextPattern.cs
- GridPattern.cs
- InputLanguageManager.cs
- ObjectPersistData.cs
- ToolStripMenuItem.cs
- XmlSchemaComplexContentRestriction.cs
- TextEndOfLine.cs
- DataTable.cs
- RichTextBox.cs
- TitleStyle.cs
- ObjectIDGenerator.cs
- PropertyValueChangedEvent.cs
- EncoderBestFitFallback.cs
- DataViewListener.cs
- DataViewSettingCollection.cs
- XmlTextReaderImpl.cs
- RichTextBoxConstants.cs
- MailBnfHelper.cs
- DataTableMappingCollection.cs
- EpmCustomContentDeSerializer.cs
- ParseNumbers.cs
- TrustManager.cs
- MsmqException.cs
- Material.cs
- EmptyEnumerable.cs
- XamlBrushSerializer.cs
- SynchronizedInputAdaptor.cs
- DesignerSerializationVisibilityAttribute.cs
- ProfilePropertySettings.cs
- XmlByteStreamReader.cs
- MetadataWorkspace.cs
- JavaScriptString.cs
- WindowsEditBoxRange.cs
- StorageModelBuildProvider.cs