2010-02-20 19 views
16

La acción que apunto necesita https. Ya tengo un filtro que redirige a https si llega una solicitud a través de http, pero preferiría enviar la solicitud a través de https desde el principio.¿Cómo configuro el protocolo cuando uso RedirectToAction?

EDITAR

Hubo una respuesta de Darin (actualizado ahora a otra cosa) donde pidió que le llamo primera acción de http de todos modos. Tenía un buen punto allí y acabo de actualizar un par de enlaces. Esta fue la forma más fácil y segura de solucionar mi problema.

Una vez que encuentro el tiempo para evaluar la respuesta çağdaş voy a utilizar esto como la respuesta correcta, ya que supongo que eso es de interés para algunas otras personas (... incluyendo mí en el futuro)

Respuesta

14

No sé si tiene que usar RedirectToAction pero con un método y UrlHelper del controlador Redirect se puede hacer esto:

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

Para ser sincero, no sé la diferencia entre Redirect y RedirectToAction. Quizás hay una diferencia cuando se usa TempData. Tengo que probar este. Se ve perfecto hasta ahora. –

+0

@Malcolm Frexner Bueno, la diferencia es que uno de ellos ('Redirect') toma el URI como parámetro, mientras que el otro toma" algún diccionario de valores "(citando el código fuente). Y además, no debería haber ningún problema con TempData, ya que ambos redireccionan de la misma manera al final. –

+2

Esto es algo realmente extraño de tener que hacer, pero funciona. Seguramente muchas personas tienen que cambiarse a un carro seguro y luego volver al http de vainilla cuando se complete el pago. Me sorprende que no haya una opción con las funciones habituales de RedirectToAction. –

0

Usted puede tomar una mira this article que ilustra cómo habilitar HTTPS en el nivel de enrutamiento.

Cuestiones relacionadas