Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.NET 5(核心)中间件中需要HTTP(而不是HTTPs)_Asp.net_Asp.net Core - Fatal编程技术网

在ASP.NET 5(核心)中间件中需要HTTP(而不是HTTPs)

在ASP.NET 5(核心)中间件中需要HTTP(而不是HTTPs),asp.net,asp.net-core,Asp.net,Asp.net Core,在我旧版本的ASP.NET MVC 5中,我有一个自定义筛选器,用于管理HTTPs连接。我的筛选器强制通过HTTP重新发送安全HTTPS请求 这是我的过滤器: /// <summary> /// Forces a secured (HTTPS) request to be resent over HTTP /// </summary> [AttributeUsage(AttributeTargets.Class | AttributeTargets

在我旧版本的ASP.NET MVC 5中,我有一个自定义筛选器,用于管理HTTPs连接。我的筛选器强制通过HTTP重新发送安全HTTPS请求

这是我的过滤器:

/// <summary>
    /// Forces a secured (HTTPS) request to be resent over HTTP
    /// </summary>
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
    public class RequireHttpAttribute : FilterAttribute, IAuthorizationFilter
    {
        public virtual void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext");
            }

            if (filterContext.HttpContext.Request.IsLocal)
            {
                return;
            }

            if (string.Equals(filterContext.HttpContext.Request.Headers["X-Forwarded-Proto"],
                "https",
                StringComparison.InvariantCultureIgnoreCase))
            {
                HandleHttpsRequest(filterContext);
            }

            return;

        }

        protected virtual void HandleHttpsRequest(AuthorizationContext filterContext)
        {
            if (!string.Equals(filterContext.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
            {
                // Only redirect GET requests
                return;
            }

            string url = "http://" + filterContext.HttpContext.Request.Url.Host + filterContext.HttpContext.Request.RawUrl;
            filterContext.Result = new RedirectResult(url);
        }
    }
如何在ASP.NET 5中实现这一点


谢谢。

使用内置的代码,好吧,让它做相反的事情


解析X-Forwarded-For-*是另一个过程的一部分,因此我不想自己动手,而是先配置它。

谢谢@blowdart,我会照你说的做;我不知道为什么人们投票否决这个问题。。。