You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
55
mcs/class/referencesource/System.Web/UrlMappingsModule.cs
Normal file
55
mcs/class/referencesource/System.Web/UrlMappingsModule.cs
Normal file
@ -0,0 +1,55 @@
|
||||
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 <modules/>
|
||||
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;
|
||||
UrlMappingRewritePath(app.Context);
|
||||
}
|
||||
|
||||
internal static void UrlMappingRewritePath(HttpContext context) {
|
||||
HttpRequest request = context.Request;
|
||||
UrlMappingsSection urlMappings = RuntimeConfig.GetAppConfig().UrlMappings;
|
||||
string path = request.Path;
|
||||
string mappedUrl = null;
|
||||
|
||||
// First check path with query string (for legacy reasons)
|
||||
string qs = request.QueryStringText;
|
||||
if (!String.IsNullOrEmpty(qs)) {
|
||||
mappedUrl = urlMappings.HttpResolveMapping(path + "?" + qs);
|
||||
}
|
||||
|
||||
// Check Path if not found
|
||||
if (mappedUrl == null)
|
||||
mappedUrl = urlMappings.HttpResolveMapping(path);
|
||||
|
||||
if (!String.IsNullOrEmpty(mappedUrl))
|
||||
context.RewritePath(mappedUrl, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user