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
- MaskedTextBoxTextEditorDropDown.cs
- HashStream.cs
- _TransmitFileOverlappedAsyncResult.cs
- NamespaceDisplayAutomationPeer.cs
- SqlVisitor.cs
- Calendar.cs
- ConfigXmlComment.cs
- CdpEqualityComparer.cs
- RoleManagerModule.cs
- Console.cs
- DispatcherObject.cs
- ObjectRef.cs
- TextEditorDragDrop.cs
- EdgeModeValidation.cs
- CachedTypeface.cs
- BitConverter.cs
- WebPartConnectVerb.cs
- PrimitiveType.cs
- XmlDataCollection.cs
- ExpandSegment.cs
- PeerNameRegistration.cs
- ALinqExpressionVisitor.cs
- ParenthesizePropertyNameAttribute.cs
- _DigestClient.cs
- NativeMethods.cs
- Pen.cs
- TextParagraphProperties.cs
- XmlBoundElement.cs
- BeginGetFileNameFromUserRequest.cs
- UnionQueryOperator.cs
- AuthenticationModuleElement.cs
- Drawing.cs
- XmlSchemaProviderAttribute.cs
- ProviderIncompatibleException.cs
- PreviewKeyDownEventArgs.cs
- HandlerBase.cs
- TextSelectionProcessor.cs
- EntityViewGenerationConstants.cs
- GridViewDesigner.cs
- RuntimeConfigLKG.cs
- MarginsConverter.cs
- XmlName.cs
- SortExpressionBuilder.cs
- XmlSchemaSimpleContentRestriction.cs
- TraceLevelStore.cs
- DetailsViewModeEventArgs.cs
- WebPartManagerInternals.cs
- MethodBuilderInstantiation.cs
- DragEventArgs.cs
- ConstraintManager.cs
- ConstructorNeedsTagAttribute.cs
- BitConverter.cs
- Misc.cs
- ObservableCollection.cs
- Typeface.cs
- ViewValidator.cs
- RegexCharClass.cs
- mil_sdk_version.cs
- XmlDataFileEditor.cs
- AttributeCollection.cs
- NavigationFailedEventArgs.cs
- TypeCacheManager.cs
- TargetConverter.cs
- AttributeAction.cs
- SqlProviderServices.cs
- SchemaImporterExtensionsSection.cs
- WindowsGrip.cs
- UndoManager.cs
- ConstraintCollection.cs
- ProcessHostMapPath.cs
- Clipboard.cs
- HwndSourceKeyboardInputSite.cs
- ItemCheckEvent.cs
- KeyNotFoundException.cs
- XmlCharacterData.cs
- WsdlInspector.cs
- SystemWebExtensionsSectionGroup.cs
- ItemChangedEventArgs.cs
- OptimizerPatterns.cs
- AutomationElementCollection.cs
- FastPropertyAccessor.cs
- QuestionEventArgs.cs
- HMAC.cs
- XamlTemplateSerializer.cs
- FunctionOverloadResolver.cs
- ButtonColumn.cs
- ServiceChannel.cs
- XmlSchemaAnnotated.cs
- TabItemWrapperAutomationPeer.cs
- TextProviderWrapper.cs
- TimelineGroup.cs
- ActivityBuilder.cs
- TemplateXamlTreeBuilder.cs
- AlphaSortedEnumConverter.cs
- LoginViewDesigner.cs
- SecurityHelper.cs
- XmlEnumAttribute.cs
- StylusPointProperties.cs
- LightweightCodeGenerator.cs
- XmlHierarchyData.cs