asp.net mvc - c# mvc:接收https post,编写cookie并转发到http端点

本文关键字:mvc cookie 转发 编写 端点 http post net https 接收 asp | 更新日期: 2023-09-27 17:51:04

我正在尝试设置一个https端点来接收POST请求,设置cookie并将其转发到使用。net中的MVC框架的HTTP端点。

public class MyController : Controller
{
      [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
      [AllowAnonymous]
      public ActionResult HttpsPostMessageProcessor()
      {
         //Process the Post Message. write cookies
         System.Web.HttpContext.Current.Response.AddHeader("cookieName", "cookieVal");  
        // Forward to http endpoint
        Redirect("http://myhttpendpoint.com");
    }
}

当我用post请求点击https://myhttpendpoint.com/MyController/HttpsPostMessageProcessor时,我可以看到请求正在到达重定向调用,但浏览器重定向到https://myhttpendpoint.com/而不是http端点。

我在某处读到HTTPS帖子不能重定向到HTTP。有人能解释一下原因吗?还有,有没有变通的办法?

我不希望整个网站是https。我想重定向到http,只要我处理HTTPS Post消息。

PS:我试过使用:

System.Web.HttpContext.Current.Response.Buffer = true;

System.Web.HttpContext.Current.Response.Redirect(ruUri.AbsoluteUri);

但这给了我错误,"服务器不能在HTTP头发送后附加头。"

任何帮助都是感激的!谢谢!

asp.net mvc - c# mvc:接收https post,编写cookie并转发到http端点

你可能想用javascript写一个视图,重定向到非ssl url。

window.top.location = 'http://myhttpendpoint.com';

如果你用ssl发送请求,浏览器打算使用ssl。除非您有客户端操作或脚本重定向到非ssl。