2010-02-20 21 views
16

Hedeflediğim işlemin https olması gerekiyor. Http yoluyla bir istek geldiğinde https'ye yönlendiren bir filtre zaten var, ancak isteği en baştan https yoluyla göndermeyi tercih ederim.RedirectToAction kullanırken protokolü nasıl ayarlayabilirim?

DÜZENLEME

Zaten http tarafından bu ilk eylemi diyorlar diye sordu (başka bir değere artık güncellenmiş) Darin bir cevap yoktu. Orada iyi bir nokta vardı ve birkaç bağlantıyı yeni güncelledim. Bu, sorunumu düzeltmenin en kolay ve en güvenli yoluydu.

I (ileride ben de dahil ...) Ben diğer bazı insanlar için ilgi thats tahmin çünkü çağdaş cevap ben, doğru cevap olarak bunu kullanır değerlendirmek için zaman bulduğunuzda

cevap

14

Eğer RedirectToAction kullanmalısınız eğer bilmiyorum ama bunu bir UrlHelper ve kontrolörün Redirect yöntemiyle:

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

Dürüst olmak gerekirse Redirect ve RedirectToAction arasındaki farkı bilmiyorum. TempData kullanıldığında belki bir fark var. Bunu denemek zorundayım. Şimdiye kadar mükemmel görünüyor. –

+0

@Malcolm Frexner Eh, fark, biri ("Yönlendirme") URI'yi parametre olarak alırken diğeri "bazı değerler sözlüğü" alır (kaynak koddan alıntı). Ve aynı zamanda, TempData ile herhangi bir sorun olmamalıdır, çünkü ikisi de aynı şekilde yeniden yönlendiriyorlar. –

+2

Bu yapmak için gerçekten garip bir şey, ama işe yarıyor. Kesinlikle çok sayıda insan güvenli bir arabaya dönmeli ve ödeme tamamlandığında vanilya'ya geri dönmelidir. Ben normal RedirectToAction fonksiyonları ile bir seçenek olmadığını şaşırdım. –

0

Bir sürebilir HTTPS'nin yönlendirme seviyesinde nasıl etkinleştirileceğini gösteren this article'a bakın.