使用RedirectToAction时如何设置协议?

时间:2010-02-20 11:58:15

标签: asp.net-mvc https

我的目标行动需要https。我已经有一个过滤器,如果请求通过http进入,则会重定向到https,但我希望从一开始就通过https发送请求。

修改

Darin得到了一个答案(现在更新到其他地方),他问我为什么称之为http的第一个动作。他在那里有一个很好的观点,我刚刚更新了几个链接。这是解决问题的最简单,最安全的方法。

一旦我找到时间评估çağdaş答案,我会用这个作为正确的答案,因为我觉得其他人感兴趣(...包括我将来)

3 个答案:

答案 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。