Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- EditingCoordinator.cs
- FloaterParagraph.cs
- XmlNodeChangedEventArgs.cs
- BitmapSizeOptions.cs
- PeerNameRecord.cs
- FindSimilarActivitiesVerb.cs
- StrokeIntersection.cs
- XMLSchema.cs
- SaveFileDialogDesigner.cs
- SecurityPolicySection.cs
- URL.cs
- TransformValueSerializer.cs
- TypeReference.cs
- CommandDevice.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- EditorZone.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- HandlerMappingMemo.cs
- TextCollapsingProperties.cs
- TaskFactory.cs
- recordstatefactory.cs
- CheckBoxAutomationPeer.cs
- WaitHandle.cs
- Empty.cs
- Decoder.cs
- RightsManagementInformation.cs
- FormViewDeleteEventArgs.cs
- MergeEnumerator.cs
- MeasurementDCInfo.cs
- TdsParserSafeHandles.cs
- XMLSyntaxException.cs
- UTF32Encoding.cs
- RealizedColumnsBlock.cs
- followingsibling.cs
- OleDbConnectionInternal.cs
- BindValidator.cs
- MembershipUser.cs
- ValidatedControlConverter.cs
- DSGeneratorProblem.cs
- PackagePart.cs
- DrawingGroup.cs
- WebFormsRootDesigner.cs
- ColorDialog.cs
- UnsafePeerToPeerMethods.cs
- Command.cs
- XamlToRtfWriter.cs
- DefaultMemberAttribute.cs
- ConfigurationValidatorBase.cs
- BitmapCodecInfo.cs
- OpCodes.cs
- PaginationProgressEventArgs.cs
- XmlCharCheckingWriter.cs
- Control.cs
- TextRangeProviderWrapper.cs
- InfoCardTraceRecord.cs
- HttpModulesSection.cs
- RenamedEventArgs.cs
- CaseKeyBox.xaml.cs
- AutomationEvent.cs
- LoginName.cs
- FileUpload.cs
- OdbcPermission.cs
- TextFindEngine.cs
- HostedHttpContext.cs
- XmlCustomFormatter.cs
- UTF7Encoding.cs
- ExpressionLexer.cs
- RIPEMD160.cs
- Logging.cs
- DocumentPageTextView.cs
- RequestQueryParser.cs
- SoapDocumentServiceAttribute.cs
- ContextMenuService.cs
- StandardBindingImporter.cs
- SwitchAttribute.cs
- FocusTracker.cs
- CheckBoxAutomationPeer.cs
- ListViewItemEventArgs.cs
- SkipQueryOptionExpression.cs
- BitmapImage.cs
- RouteCollection.cs
- UnsafeNativeMethods.cs
- XmlSchemaDocumentation.cs
- EmptyStringExpandableObjectConverter.cs
- HScrollProperties.cs
- ProviderCollection.cs
- HashSetEqualityComparer.cs
- BrushConverter.cs
- WmiEventSink.cs
- OleStrCAMarshaler.cs
- SimpleMailWebEventProvider.cs
- ToolStripSplitStackLayout.cs
- QueryableFilterUserControl.cs
- Security.cs
- ContentPosition.cs
- FieldReference.cs
- DataContractSerializerSection.cs
- Message.cs
- HttpConfigurationSystem.cs
- ImpersonateTokenRef.cs