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 を使用してダイジェスト認証を実行しようとしています。

  • これは正常に認証されているようで、ヘッダーを解析できます。

  • 次に、このリクエストを行っている現在のページにこれらのヘッダーを追加しようとしていることに気付くでしょう。

  • 最後に、部分ビューを呼び出して現在のページに戻ります。部分ビューには、上記の関数に存在する url と等しい src 属性を持つ img タグ以外には何もありません。

これは私が望んでいたように機能していません。firebugでネットトラフィックを表示した後、リクエストを作成し、そのリクエストのみにヘッダーを追加し、部分ビューと部分ビューを呼び出してから再度認証する必要があるため、ユーザー名とパスワードを求めてポップアップが再びポップアップすると思います。

それで、ええ。これを機能させる方法を視覚化するのに少し苦労しており、アドバイスをいただければ幸いです。

一番、

チャド

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 に答える