2010-02-20 15 views
16

Akcja, którą wybieram, wymaga https. Mam już filtr, który przekierowuje do https, jeśli żądanie przychodzi za pośrednictwem http, ale wolałbym wysłać żądanie przez https od samego początku.Jak ustawić protokół podczas korzystania z funkcji RedirectToAction?

EDIT

Wystąpił odpowiedź z Darin (aktualizacja teraz do czegoś innego), w którym pytał, dlaczego nazywają to pierwsze działanie przez http tak. Miał dobry punkt i właśnie zaktualizowałem kilka linków. To był najprostszy i najbezpieczniejszy sposób na naprawienie mojego problemu.

Gdy znajdę czas, aby ocenić odpowiedź Çağdaş użyję tego jako poprawnej odpowiedzi, ponieważ myślę, że ów interesujące dla innych ludzi (... łącznie ze mną w przyszłości)

Odpowiedz

14

ja nie wiem, czy należy użyć RedirectToAction ale z UrlHelper i sterownika Redirect metodzie można to zrobić:

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

Szczerze mówiąc, nie znam różnicy między przekierowaniem a przekierowaniem. Być może istnieje różnica, gdy używana jest TempData. Muszę spróbować tego. Wygląda jak dotąd perfekcyjnie. –

+0

@Malcolm Frexner Różnica polega na tym, że jeden z nich ('Redirect') pobiera URI jako parametr, podczas gdy drugi przyjmuje" słownik niektórych wartości "(cytując kod źródłowy). Poza tym nie powinno być żadnych problemów z TempData, ponieważ oba przekierowują w ten sam sposób na końcu. –

+2

To naprawdę dziwna sprawa, ale to działa. Z pewnością wiele osób musi przejść na bezpieczny koszyk, a po zakończeniu transakcji wrócić do wanilii http. Jestem zaskoczony, że nie ma opcji ze zwykłymi funkcjami RedirectToAction. –

0

może potrwać spójrz na numer this article, który pokazuje, jak włączyć HTTPS na poziomie routingu.

Powiązane problemy