http://www.someurl.com/somefolder/filename.pdfなど、いくつかのpdfファイルへのリンクを含むWebページがあります。
ユーザーがこれらのリンクをクリックすると、認証が開始され、ユーザーがログインしてファイルをダウンロードできるようになります。私が達成しようとしているのは、ダウンロードが新しいウィンドウで開くことです。
コードへのアクセス/制御が制限されており、target=_blank
属性を href に配置したり、javascript を追加したりすることはできません。認証後にダウンロードされるコードは次のとおりです。
string filename = Path.GetFileName(context.Request.PhysicalPath);
FileStream MyFileStream;
long FileSize;
string strMapPath = context.Server.MapPath(filename);
MyFileStream = new FileStream(strMapPath, FileMode.Open);
FileSize = MyFileStream.Length;
//Allocate size for our buffer array
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();
//Do buffer cleanup
context.Response.Buffer = true;
context.Response.Clear();
//Add the appropriate headers
context.Response.AddHeader("content-disposition",
"attachement filename=" + filename);
//Add the right contenttype
context.Response.ContentType = "application/pdf";
//Stream it out via a Binary Write
context.Response.BinaryWrite(Buffer);
強制的context.Response
に新しいウィンドウで開くことはできますか?