estoy usando la nueva beta Api Web y desea volver"No se puede redirigir después de que se hayan enviado los encabezados HTTP". Al regresar HttpResponseMessage con HttpStatusCode.Unauthorized
HttpResponseMessage<MyObject>(new MyObject{ MyMessage = "Go Away!" }, HttpStatusCode.Unauthorized)
de una de mis acciones ApiController.
Forms Authentication secuestra la respuesta, se bloquea y agrega el error "Cannot redirect after HTTP headers have been sent."
y es html a la respuesta.
Las técnicas de supresión normal como this no funcionan con Web Api.
¿Alguien ha encontrado una solución a esto?
He visto this forum post donde las personas informan del mismo problema pero las soluciones allí no funcionan para este caso. La primera solución sugerida utiliza la técnica de supresión normal que no funciona para la API web. El segundo usa un HttpMessageHandler para interceptar la solicitud antes de que llegue al controlador, quiero que el controlador se dispare como siempre.
Después de mirar en el DelegatingHandler
puedo obtener acceso al HttpResponseMessage
pero no tengo idea de qué hacer con él para evitar que FormsAuth redirija.
Explicar por qué las soluciones propuestas no funcionan podría ser útil aquí. – Maurice
@Maurice buena idea, he actualizado la pregunta – Magpie
Entonces, ¿por qué funcionan _las técnicas de supresión normal_ como las mencionadas en la publicación de blog de Phil Haack? Están destinados a servicios REST como WebAPI. – Maurice