我知道简单的方法来在ASP.NET MVC的SSL页面-通过[RequireSSL]属性 ,但我有点困惑做相反的最好方法。
我有一个标题栏在我的网站很多链接和大多数这些链接都不需要SSL,我不希望仍然使用SSL。
期货项目可以很容易地自动重定向到与SSL页面[RequireSSL(Redirect=true)]
,但它似乎没有可以很容易地摆脱这种背景下,并自动重定向回HTTP。
我在想什么?
我知道简单的方法来在ASP.NET MVC的SSL页面-通过[RequireSSL]属性 ,但我有点困惑做相反的最好方法。
我有一个标题栏在我的网站很多链接和大多数这些链接都不需要SSL,我不希望仍然使用SSL。
期货项目可以很容易地自动重定向到与SSL页面[RequireSSL(Redirect=true)]
,但它似乎没有可以很容易地摆脱这种背景下,并自动重定向回HTTP。
我在想什么?
您不会错过任何东西; 有外的开箱没有的功能这一点。 您可以轻松地通过采取建立自己的RequireSslAttribute源并修改它。
来自其它地方的欺骗问题答案:
如何从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);
}
}
这是很值得一读(epecially实现切换不慎回安全隐患http
从https
:
部分SSL的安全Web应用程序使用ASP.NET -不MVC具体的,但相关的安全问题
部分SSL网站与ASP.NET MVC - MVC友好
这是一个相当复杂的问题的整体。 还没有找到真正的解决方案,一切我想做的事,但认为这些文章可以帮助别人。