/// <summary> /// Maps the site. /// </summary> /// <param name="siteMapConfigs">The site map configs.</param> /// <param name="branch">The branch that is invoked when a request matches a site map config.</param> /// <returns>A middleware func.</returns> /// <exception cref="System.ArgumentNullException">siteMapConfigs</exception> /// <exception cref="System.ArgumentNullException">branch</exception> public static MidFunc MapSite(IEnumerable<MapSiteConfig> siteMapConfigs, AppFunc branch) { siteMapConfigs.MustNotBeNull("siteMapConfigs"); branch.MustNotBeNull("branch"); var siteMapsHashSet = new HashSet<MapSiteConfig>(siteMapConfigs); return next => env => { var headers = env.Get<IDictionary<string, string[]>>(OwinRequestHeadersKey); var host = headers[HostHeaderKey][0]; var scheme = env.Get<string>(OwinRequestSchemeKey); //If the headers have a X-Forwarded-Proto header then the request has been mapped through //a load balancer or reverse proxy and the initial scheme is contained in the header value. string[] headerValues; if (headers.TryGetValue(XForwardedProtoHeaderKey, out headerValues)) { string headerValue = headerValues[0]; if (string.Equals(headerValue, "https", StringComparison.InvariantCultureIgnoreCase)) { scheme = "HttpsXForwardedProto"; } } var requestScheme = (RequestScheme)Enum.Parse(typeof(RequestScheme), scheme, true); var siteMap = new MapSiteConfig(host, requestScheme); return siteMapsHashSet.Contains(siteMap) ? branch(env) : next(env); }; }
/// <summary> /// /// </summary> /// <param name="builder"></param> /// <param name="mapSiteConfig"></param> /// <param name="branch"></param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">builder</exception> /// <exception cref="System.ArgumentNullException">MapSiteConfig</exception> /// <exception cref="System.ArgumentNullException">branch</exception> public static IAppBuilder MapSite(this IAppBuilder builder, MapSiteConfig mapSiteConfig, Action <IAppBuilder> branch) { builder.MustNotBeNull("builder"); mapSiteConfig.MustNotBeNull("MapSiteConfig"); branch.MustNotBeNull("branch"); return(MapSite(builder, mapSiteConfig, builder.BranchConfig(branch))); }
/// <summary> /// /// </summary> /// <param name="builder"></param> /// <param name="mapSiteConfig"></param> /// <param name="branch"></param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">builder</exception> /// <exception cref="System.ArgumentNullException">MapSiteConfig</exception> /// <exception cref="System.ArgumentNullException">branch</exception> public static IAppBuilder MapSite(this IAppBuilder builder, MapSiteConfig mapSiteConfig, AppFunc branch) { builder.MustNotBeNull("builder"); mapSiteConfig.MustNotBeNull("MapSiteConfig"); branch.MustNotBeNull("branch"); builder .UseOwin() .MapSite(mapSiteConfig, branch); return(builder); }
public MapSiteConfigTests() { _config1 = new MapSiteConfig("host1"); _sameAsConfig1 = new MapSiteConfig("host1"); _differentToConfig1 = new MapSiteConfig("host2"); }
/// <summary> /// /// </summary> /// <param name="builder"></param> /// <param name="mapSiteConfig"></param> /// <param name="branch"></param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">builder</exception> /// <exception cref="System.ArgumentNullException">MapSiteConfig</exception> /// <exception cref="System.ArgumentNullException">branch</exception> public static IAppBuilder MapSite(this IAppBuilder builder, MapSiteConfig mapSiteConfig, Action<IAppBuilder> branch) { builder.MustNotBeNull("builder"); mapSiteConfig.MustNotBeNull("MapSiteConfig"); branch.MustNotBeNull("branch"); return MapSite(builder, mapSiteConfig, builder.BranchConfig(branch)); }
/// <summary> /// /// </summary> /// <param name="builder"></param> /// <param name="mapSiteConfig"></param> /// <param name="branch"></param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">builder</exception> /// <exception cref="System.ArgumentNullException">MapSiteConfig</exception> /// <exception cref="System.ArgumentNullException">branch</exception> public static IAppBuilder MapSite(this IAppBuilder builder, MapSiteConfig mapSiteConfig, AppFunc branch) { builder.MustNotBeNull("builder"); mapSiteConfig.MustNotBeNull("MapSiteConfig"); branch.MustNotBeNull("branch"); builder .UseOwin() .MapSite(mapSiteConfig, branch); return builder; }
/// <summary> /// /// </summary> /// <param name="builder"></param> /// <param name="mapSiteConfig"></param> /// <param name="branch"></param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">builder</exception> /// <exception cref="System.ArgumentNullException">MapSiteConfig</exception> /// <exception cref="System.ArgumentNullException">branch</exception> public static BuildFunc MapSite(this BuildFunc builder, MapSiteConfig mapSiteConfig, AppFunc branch) { builder.MustNotBeNull("builder"); mapSiteConfig.MustNotBeNull("MapSiteConfig"); branch.MustNotBeNull("branch"); return MapSite(builder, new[] {mapSiteConfig}, branch); }