0

我正在尝试执行以下操作,但不确定我是否以正确的方式进行此操作。如标题所述,我使用的是 asp.net mvc 4。

  • 从一个页面,我向服务器发出 ajax 请求。ajax 请求调用follow 函数。

    public ActionResult VideoFeed()
    {
        // Create a new 'HttpWebRequest' Object to the mentioned URL.
        HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://url/cgi/image.php?type=live");
    
        // Digest Authenticate
        myHttpWebRequest.Credentials = new NetworkCredential(username, password);
    
        // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
        HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    
        // Store headers
        string authorization = myHttpWebRequest.Headers["Authorization"];
        string host = myHttpWebRequest.Headers["Host"];
    
        // Add header
        Response.AppendHeader("Authorization", authorization);
        Response.AppendHeader("Host", host); 
    
        return PartialView("~/Views/RedLight/SystemStatus/_Video.cshtml");
    }
    
  • 在此函数中,我尝试使用 HttpWebRequest 执行摘要身份验证

  • 这似乎可以很好地进行身份验证,并且我能够解析标题。

  • 然后您会注意到我正在尝试将这些标头附加到发出此请求的当前页面。

  • 最后我调用局部视图返回当前页面。局部视图除了一个 src 属性等于上述函数中存在的 url 的 img 标记之外没有其他任何东西。

这不像我希望的那样工作。在萤火虫中查看净流量后,我相信它正在发出请求,仅向该请求添加标头,调用部分视图和部分视图然后再次需要进行身份验证,因此再次弹出用户名和密码的弹出窗口。

是的。我在想象如何完成这项工作时遇到了一些麻烦,我将不胜感激任何建议。

最好的,

乍得

4

1 回答 1

0

经过更多的研究,我意识到我的方法行不通。相反,我需要创建一个代理方法。IE 客户端调用我的服务器 -> 我的服务器调用 url -> 我的服务器流到客户端。

我在https://stackoverflow.com/questions/19687534/how-to-properlly-handle-a-webrequst-and-display-it-to-page-video-stream发布了一个后续问题

谢谢,

乍得

于 2013-10-30T15:49:02.280 回答