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
- StringArrayConverter.cs
- RegexWorker.cs
- VScrollProperties.cs
- AtomMaterializerLog.cs
- Matrix3D.cs
- CodeNamespaceImportCollection.cs
- TableHeaderCell.cs
- QilPatternFactory.cs
- DurableInstanceProvider.cs
- DelegatedStream.cs
- WebPartExportVerb.cs
- DataGridViewHeaderCell.cs
- JavaScriptObjectDeserializer.cs
- ReadingWritingEntityEventArgs.cs
- TextHintingModeValidation.cs
- BoolLiteral.cs
- Repeater.cs
- clipboard.cs
- X509Utils.cs
- TableColumn.cs
- Matrix3D.cs
- RegexCapture.cs
- __TransparentProxy.cs
- StringReader.cs
- HttpListenerPrefixCollection.cs
- DiagnosticsConfigurationHandler.cs
- OleDbWrapper.cs
- FontDialog.cs
- XPathDescendantIterator.cs
- HandleCollector.cs
- SafeArrayRankMismatchException.cs
- ListViewTableRow.cs
- FixedPosition.cs
- ADMembershipUser.cs
- PinnedBufferMemoryStream.cs
- XmlSchemaSimpleType.cs
- FormClosedEvent.cs
- TagMapCollection.cs
- SettingsProviderCollection.cs
- XmlHelper.cs
- MimeObjectFactory.cs
- HtmlElementEventArgs.cs
- ForeignConstraint.cs
- SubclassTypeValidator.cs
- DependencyPropertyChangedEventArgs.cs
- OrderPreservingPipeliningSpoolingTask.cs
- FlowDocument.cs
- PrePrepareMethodAttribute.cs
- TagPrefixAttribute.cs
- BitmapSourceSafeMILHandle.cs
- SecureUICommand.cs
- SqlDataReaderSmi.cs
- CodeAssignStatement.cs
- ProcessRequestArgs.cs
- SocketAddress.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- BehaviorEditorPart.cs
- StyleXamlTreeBuilder.cs
- regiisutil.cs
- NavigationHelper.cs
- TableLayoutPanel.cs
- UnsafePeerToPeerMethods.cs
- XmlDesignerDataSourceView.cs
- BinaryNode.cs
- Oid.cs
- SchemaDeclBase.cs
- RSACryptoServiceProvider.cs
- BrowserTree.cs
- XmlExceptionHelper.cs
- AmbientProperties.cs
- MailAddressCollection.cs
- DoubleCollectionConverter.cs
- WorkItem.cs
- ServicePointManagerElement.cs
- Page.cs
- SoapIgnoreAttribute.cs
- IEnumerable.cs
- NodeLabelEditEvent.cs
- HttpClientCertificate.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- ObjectSet.cs
- AppDomainFactory.cs
- XmlSchemaInfo.cs
- ClientSettingsProvider.cs
- Size.cs
- ApplicationServiceHelper.cs
- TokenBasedSetEnumerator.cs
- Hash.cs
- CounterSampleCalculator.cs
- basevalidator.cs
- PerfCounters.cs
- RequestQueue.cs
- ProviderConnectionPointCollection.cs
- ValidatorAttribute.cs
- PropertyCondition.cs
- SynchronizedChannelCollection.cs
- ConnectivityStatus.cs
- KeyFrames.cs
- HttpPostedFileWrapper.cs
- DBCommand.cs