私は次のことを試みていますが、これが正しい方法であるかどうかはわかりません。タイトルで述べたように、私は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でネットトラフィックを表示した後、リクエストを作成し、そのリクエストのみにヘッダーを追加し、部分ビューと部分ビューを呼び出してから再度認証する必要があるため、ユーザー名とパスワードを求めてポップアップが再びポップアップすると思います。
それで、ええ。これを機能させる方法を視覚化するのに少し苦労しており、アドバイスをいただければ幸いです。
一番、
チャド