Как установить протокол при использовании RedirectToAction?
Для цели действия я требуется https. У меня уже есть фильтр на месте, который перенаправляется на https, если запрос приходит через http, но я бы предпочел отправить запрос через https с самого начала.
ИЗМЕНИТЬ
Был получен ответ от Дарина (теперь он обновлен до чего-то еще), где он спросил, почему я все-таки называю это первым действием http. У него был хороший момент, и я только что обновил пару ссылок. Это был самый простой и безопасный способ исправить мою проблему.
Как только я нахожу время для оценки ответа çağdaş, я буду использовать это как правильный ответ, потому что я предполагаю, что это интересно для некоторых других людей (... включая меня в будущем)
Ответы
Ответ 1
Я не знаю, следует ли использовать RedirectToAction
, но с помощью метода UrlHelper
и контроллера Redirect
вы можете сделать это:
public ActionResult SomeAction() {
UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext);
return Redirect(u.Action("actionName", "controllerName", null, "https"));
}
Ответ 2
ASP.NET MVC 3 включает RequireHttpsAttribute, который может быть полезен.
Ответ 3
Вы можете взглянуть на эту статью, которая иллюстрирует, как включить HTTPS на уровне маршрутизации.