我的目标行动需要https。我已经有一个过滤器,如果请求通过http进入,则会重定向到https,但我希望从一开始就通过https发送请求。
修改
Darin得到了一个答案(现在更新到其他地方),他问我为什么称之为http的第一个动作。他在那里有一个很好的观点,我刚刚更新了几个链接。这是解决问题的最简单,最安全的方法。
一旦我找到时间评估çağdaş答案,我会用这个作为正确的答案,因为我觉得其他人感兴趣(...包括我将来)
答案 0 :(得分:14)
我不知道您是否必须使用RedirectToAction
但使用UrlHelper
和控制器的Redirect
方法可以执行此操作:
public ActionResult SomeAction() {
UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext);
return Redirect(u.Action("actionName", "controllerName", null, "https"));
}
答案 1 :(得分:1)
ASP.NET MVC 3包含可能有帮助的RequireHttpsAttribute。
答案 2 :(得分:0)
您可以查看this article,其中说明了如何在路由级别启用HTTPS。