Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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; // } } } // 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
- login.cs
- BuildTopDownAttribute.cs
- ListViewPagedDataSource.cs
- WindowsFormsSynchronizationContext.cs
- EncodingDataItem.cs
- DataGridViewTextBoxEditingControl.cs
- RotateTransform3D.cs
- DbConnectionPoolCounters.cs
- XmlSequenceWriter.cs
- xdrvalidator.cs
- Calendar.cs
- KeyInterop.cs
- TextDecorationCollectionConverter.cs
- TagPrefixAttribute.cs
- TextServicesManager.cs
- CollectionBuilder.cs
- propertytag.cs
- XPathSelectionIterator.cs
- SqlBulkCopyColumnMappingCollection.cs
- CodeIndexerExpression.cs
- NamespaceCollection.cs
- CodeIndexerExpression.cs
- CharacterBufferReference.cs
- MessageSecurityProtocol.cs
- NamespaceCollection.cs
- TokenizerHelper.cs
- ExpressionCopier.cs
- DataGridViewTextBoxEditingControl.cs
- VerificationAttribute.cs
- AsyncCodeActivityContext.cs
- BuildManagerHost.cs
- AddInBase.cs
- XPathNodeInfoAtom.cs
- SqlConnection.cs
- TreeNodeSelectionProcessor.cs
- Helper.cs
- SqlCommandSet.cs
- DocumentsTrace.cs
- ParserHooks.cs
- SessionPageStateSection.cs
- CryptoConfig.cs
- HtmlTableRow.cs
- DropTarget.cs
- ReferenceEqualityComparer.cs
- BinaryWriter.cs
- ControlIdConverter.cs
- ExceptionUtil.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- ServiceReference.cs
- TreeNodeCollection.cs
- TableRowGroup.cs
- TextBoxAutomationPeer.cs
- IisTraceListener.cs
- ScrollContentPresenter.cs
- CheckBoxBaseAdapter.cs
- SocketStream.cs
- JpegBitmapDecoder.cs
- XamlRtfConverter.cs
- XpsSerializationManagerAsync.cs
- ViewGenerator.cs
- ELinqQueryState.cs
- DataIdProcessor.cs
- LinqDataSource.cs
- NegotiateStream.cs
- followingsibling.cs
- RawContentTypeMapper.cs
- StringExpressionSet.cs
- SchemaMapping.cs
- NonBatchDirectoryCompiler.cs
- DataKeyCollection.cs
- Shape.cs
- TaiwanLunisolarCalendar.cs
- _ConnectStream.cs
- WeakHashtable.cs
- Image.cs
- XmlAttributeAttribute.cs
- RecordsAffectedEventArgs.cs
- OpenTypeLayout.cs
- ToolStripItemBehavior.cs
- SourceChangedEventArgs.cs
- Int32Animation.cs
- ContentDesigner.cs
- Matrix3DStack.cs
- CodeTypeMemberCollection.cs
- regiisutil.cs
- EventListener.cs
- DelegateHelpers.cs
- ApplicationServiceHelper.cs
- OperandQuery.cs
- SymLanguageType.cs
- CodeNamespaceCollection.cs
- DataContext.cs
- MasterPage.cs
- HandlerMappingMemo.cs
- HtmlMobileTextWriter.cs
- TableLayoutPanelCellPosition.cs
- Parser.cs
- TableRow.cs
- SpecularMaterial.cs
- DesignTimeValidationFeature.cs