Jar*_*red 6 c# https annotations asp.net-mvc-3
我找到了这篇帖子,它看起来像我需要的应用程序,我的问题是,当不再需要https时,你如何恢复到简单的http?基于没有[RequireHttps]注释的动作,它本身会这样做吗?
编辑:我发现一些帖子谈论从https转到http(这里和这里).但是,我仍然对以下问题的答案表示赞赏.
或者,我一直在讨论如何在新窗口中打开应用程序.https只适用于新窗口,这是一个公平的假设吗?
ASP.NET MVC的RequireHttps只有一种方式.在过去,我刚刚创建了自己的FilterAttribute实现,以允许双向旅行:
EnsureHttpsAttribute
public class EnsureHttpsAttribute : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
Verify.NotNull(filterContext, "filterContext");
Verify.True(filterContext.HttpContext.Request.HttpMethod.Equals("GET", StringComparison.OrdinalIgnoreCase), "filterContext");
var request = filterContext.HttpContext.Request;
if (request.Url != null && !request.IsSecureConnection && !request.IsLocal)
filterContext.Result = new RedirectResult("https://" + request.Url.Host + request.RawUrl);
}
}
Run Code Online (Sandbox Code Playgroud)
EnsureHttpAttribute
public class EnsureHttpAttribute : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
Verify.NotNull(filterContext, "filterContext");
Verify.True(filterContext.HttpContext.Request.HttpMethod.Equals("GET", StringComparison.OrdinalIgnoreCase), "filterContext");
var request = filterContext.HttpContext.Request;
if (request.Url != null && request.IsSecureConnection)
filterContext.Result = new RedirectResult("http://" + request.Url.Host + request.RawUrl);
}
}
Run Code Online (Sandbox Code Playgroud)
如果内存服务,几乎与RequireHttpsAttribute相同的实现; 虽然上面的实现检查它是否是Local请求并忽略切换到HTTPS.
| 归档时间: |
|
| 查看次数: |
3910 次 |
| 最近记录: |