我通过在控制器操作上添加属性 [RequireSSL] 使我的登录页面启用了 Https,并且工作正常。但登录成功后仍处于https环境,但页面为非https页面。
谁能给我解决如何从 https 模式退出到 http 模式的问题吗?
在这方面的任何帮助将不胜感激。
您基本上需要做相反的事情,即具有 [DoesNotRequireSSL] 属性,该属性实际上与 {RequireSSL] 属性相反,即重定向到 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);
}
}
另外,如果您想确保多个页面具有此行为,您可以设置一个基本控制器,所有非 http 控制器都可以从中继承,这样您就不必担心必须为每个需要的页面重复自己这。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)