我该怎么做相反[RequireHttps(重定向=真)]在ASP.NET MVC(How do I

2019-06-26 10:25发布

我知道简单的方法来在ASP.NET MVC的SSL页面-通过[RequireSSL]属性 ,但我有点困惑做相反的最好方法。

我有一个标题栏在我的网站很多链接和大多数这些链接都不需要SSL,我不希望仍然使用SSL。

期货项目可以很容易地自动重定向到与SSL页面[RequireSSL(Redirect=true)] ,但它似乎没有可以很容易地摆脱这种背景下,并自动重定向回HTTP。

我在想什么?

Answer 1:

您不会错过任何东西; 有外的开箱没有的功能这一点。 您可以轻松地通过采取建立自己的RequireSslAttribute源并修改它。



Answer 2:

来自其它地方的欺骗问题答案:

如何从https走出来的HTTP模式在asp.net mvc的。

注意 :如果选择使用这种方法您的身份验证cookie将在纯文本切换回HTTP后发送,并有可能被窃取和被别人使用。 看到这个 。 换句话说-如果你使用这一个银行网站,你将需要确保切换到HTTP会注销用户。

public class DoesNotRequireSSL: ActionFilterAttribute 
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext) 
        {
                var request = filterContext.HttpContext.Request;
                var response = filterContext.HttpContext.Response;

                if (request.IsSecureConnection && !request.IsLocal) 
                {
                string redirectUrl = request.Url.ToString().Replace("https:", "http:");
                response.Redirect(redirectUrl);
                }
                base.OnActionExecuting(filterContext);
        }
    }


Answer 3:

这是很值得一读(epecially实现切换不慎回安全隐患httphttps

部分SSL的安全Web应用程序使用ASP.NET -不MVC具体的,但相关的安全问题

部分SSL网站与ASP.NET MVC - MVC友好

这是一个相当复杂的问题的整体。 还没有找到真正的解决方案,一切我想做的事,但认为这些文章可以帮助别人。



文章来源: How do I do the OPPOSITE of [RequireHttps(Redirect=true)] in ASP.NET MVC