/// <summary> /// Invokes the PreferredDomainMiddleware. /// </summary> /// <param name="context">The http context.</param> /// <param name="settings"><see cref="AppSettings"/></param> /// <param name="rewriter"><see cref="IPreferredDomainRewriter"/></param> /// <returns></returns> public Task Invoke(HttpContext context, IOptionsSnapshot <AppSettings> settings, IPreferredDomainRewriter rewriter) { var url = rewriter.Rewrite(context.Request, settings.Value.PreferredDomain); if (url == null) { // no rewrite is needed return(_next(context)); } _logger.LogInformation("RewriteUrl: {@RewriteUrl}", url); //context.Response.Headers[HeaderNames.Location] = url; //context.Response.StatusCode = StatusCodes.Status301MovedPermanently; context.Response.Redirect(url, permanent: true); return(Task.CompletedTask); }
public PreferredDomainRewriterTest() { _rewriter = new PreferredDomainRewriter(); }