基本的に、Windows 認証が必要な場所からファイルを提供する必要があります。クライアントが直接処理する代わりに、クライアントが私のシステムにログインした後、私のサーバー上にあるかのようにファイルを簡単にダウンロードできるプロセスを実装したいと考えています。これは私がこれまでに持っているもので、正しく動作していないようです:
// Create the request
WebRequest request = HttpWebRequest.Create(button.CommandArgument);
request.Credentials = new NetworkCredential(_username,_password);
// Get the response
WebResponse response = request.GetResponse();
StreamReader responseStream = new StreamReader( response.GetResponseStream());
// Send the response directly to output
Response.ContentEncoding = responseStream.CurrentEncoding;
Response.ContentType = request.ContentType;
Response.Write(responseStream.ReadToEnd());
Response.End();
これを試すと、ファイルを表示できますが、エンコーディングまたはコンテンツ タイプに何か問題があり、たとえば、PDF には (16 ページのテキストではなく) 16 の空白ページが含まれます。
私は何が欠けているのですか?
この質問の言い回しのより良い方法がある場合は、この質問のタイトルを自由に変更してください
更新: 以下の 2 つの応答を試しましたが、うまくいきませんでした。コンテンツ タイプとエンコーディングは問題ないと思いますが、認証に失敗している可能性があります。コンテンツの長さが実際よりもはるかに小さい... Windows 認証に間違った方法を使用していますか?