Asp.net mvc 使用RedirectToAction时如何设置协议?

Asp.net mvc 使用RedirectToAction时如何设置协议?,asp.net-mvc,https,Asp.net Mvc,Https,我的目标操作需要https。我已经有了一个过滤器,如果请求通过http传入,它会重定向到https,但我更愿意从一开始就通过https发送请求 编辑 Darin给出了一个答案(现在更新为其他内容),他问我为什么要通过http调用第一个操作。他有一个很好的观点,我只是更新了几个链接。这是解决我的问题最简单、最安全的方法 一旦我有时间评估萨奥达ş的答案,我会将其作为正确答案,因为我想其他人(包括未来的我)也会对此感兴趣我不知道您是否必须使用重定向到操作,但通过UrlHelper和控制器的重定向方法,

我的目标操作需要https。我已经有了一个过滤器,如果请求通过http传入,它会重定向到https,但我更愿意从一开始就通过https发送请求

编辑

Darin给出了一个答案(现在更新为其他内容),他问我为什么要通过http调用第一个操作。他有一个很好的观点,我只是更新了几个链接。这是解决我的问题最简单、最安全的方法


一旦我有时间评估萨奥达ş的答案,我会将其作为正确答案,因为我想其他人(包括未来的我)也会对此感兴趣

我不知道您是否必须使用
重定向到操作
,但通过
UrlHelper
和控制器的
重定向
方法,您可以执行以下操作:

public ActionResult SomeAction() {
    UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext);
    return Redirect(u.Action("actionName", "controllerName", null, "https"));
}

ASP.NET MVC 3包括可能有帮助的。老实说,我不知道重定向和重定向操作之间的区别。使用TempData时可能会有所不同。我得试试这个。到目前为止看起来很完美。@Malcolm Frexner嗯,区别在于其中一个(
Redirect
)使用URI作为参数,而另一个使用“一些值字典”(引用源代码)。而且,TempData也不应该有任何问题,因为它们最终都以相同的方式重定向。这是一件非常奇怪的事情,但它确实有效。当然,很多人必须切换到一个安全的购物车,然后在结帐完成后切换回香草http。我很惊讶没有常规RedirectToAction函数的选项。您可以使用另一个选项来代替创建新的UrlHelper对象,即使用
Url.Action
,这是一个已使用控制器创建的UrlHelper对象,假设该类继承自
System.Web.Mvc.controller