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
- DuplicateWaitObjectException.cs
- FieldMetadata.cs
- CodeValidator.cs
- Encoding.cs
- EntitySqlQueryState.cs
- ItemPager.cs
- SecureStringHasher.cs
- OdbcConnectionString.cs
- CellConstant.cs
- SqlWebEventProvider.cs
- DesignDataSource.cs
- TextEndOfLine.cs
- BlockUIContainer.cs
- PeerName.cs
- SystemDiagnosticsSection.cs
- GrammarBuilderWildcard.cs
- ActivityExecutor.cs
- SqlDataSourceCache.cs
- DockingAttribute.cs
- MergePropertyDescriptor.cs
- SQLDateTime.cs
- BaseAsyncResult.cs
- OneOfConst.cs
- StaticSiteMapProvider.cs
- DataAdapter.cs
- StorageSetMapping.cs
- EditorBrowsableAttribute.cs
- PixelFormats.cs
- SerializationUtility.cs
- Schema.cs
- PointAnimationBase.cs
- MarkupExtensionReturnTypeAttribute.cs
- XPathSelectionIterator.cs
- CallInfo.cs
- FontUnit.cs
- PageFunction.cs
- ConfigurationStrings.cs
- ChannelDispatcherBase.cs
- XmlConvert.cs
- TextEvent.cs
- DataBoundControlHelper.cs
- EntityDataSourceSelectedEventArgs.cs
- CuspData.cs
- IconConverter.cs
- SafeThreadHandle.cs
- Assert.cs
- ConfigurationPropertyAttribute.cs
- ResourceDefaultValueAttribute.cs
- PrinterSettings.cs
- WindowsBrush.cs
- AmbiguousMatchException.cs
- WindowsListViewItem.cs
- XmlSchemaNotation.cs
- PrivateFontCollection.cs
- XmlQueryOutput.cs
- SecurityPermission.cs
- sitestring.cs
- DocumentXPathNavigator.cs
- WebPartConnectionsConnectVerb.cs
- UriTemplatePathSegment.cs
- WindowHelperService.cs
- FontWeight.cs
- ConsumerConnectionPointCollection.cs
- DesignerTransaction.cs
- ToolStripSeparator.cs
- ConvertersCollection.cs
- TraceUtility.cs
- ListDataHelper.cs
- AttachedAnnotation.cs
- BoolExpressionVisitors.cs
- XmlStringTable.cs
- TextParagraph.cs
- ApplicationBuildProvider.cs
- VerificationException.cs
- XmlRootAttribute.cs
- PeerCollaborationPermission.cs
- FontSourceCollection.cs
- RoleManagerSection.cs
- NativeMethods.cs
- InvalidProgramException.cs
- SettingsAttributes.cs
- BuildManager.cs
- UnsafeNetInfoNativeMethods.cs
- IdentifierCollection.cs
- FastEncoder.cs
- DeploymentExceptionMapper.cs
- DBAsyncResult.cs
- DocumentSchemaValidator.cs
- RIPEMD160.cs
- EditorAttribute.cs
- XamlClipboardData.cs
- BindingWorker.cs
- StickyNoteAnnotations.cs
- XmlAtomicValue.cs
- SortedDictionary.cs
- DataBoundLiteralControl.cs
- DataSourceNameHandler.cs
- ValueType.cs
- NetworkCredential.cs
- ColumnMapProcessor.cs