.ASPXはスクリプトページであるため、実際に元のASPXをダウンロードすることはできません。もう一方の端にあるIISサーバーには.aspxのハンドラがあり、.NET処理が行われます。一般的に、サーバがraw ASPXソースを返すことは望ましくありません。
生のASPXページを取得するには、サーバー側で特別な処理が必要です。たとえば、あなたのためにそれを行うASHXスクリプトハンドラを作成すると、getfile.ashx?filename=myfile.aspx
のようなものを要求し、getfile.ashxハンドラがASPXページをディスクから読み込んでレスポンスとして書き出します。 (セキュリティ上の注意:これがあなたが選んだルートであれば、指定されたページを衛生的にして、getfile.ashx?filename=C:\my\secret\file.txt
のような愚かなことをしないようにしてください)そのハンドラの信頼レベルを中程度またはそれ以下に設定する方が良いでしょう。
しかし、すべてのサーバー側の開発が必要です。クライアント側からは、サーバーが一緒にプレイするまでは何もできません。
public class MyHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
var file = context.Request.QueryString["file"];
//Make sure to do your security checks on the file path here.
using (var source = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read))
{
source.CopyTo(context.Response.OutputStream);
}
}
}
セットアップできハンドラのいずれかASHXの内部またはweb.configファイルでhttpHandlers
部を介して:ここで
は、ファイルハンドラの一例です。
それとも、MVC2 +を使用している場合、あなただけの同じことを達成するためにアクションを使用することができるよう、あなたはHTTPハンドラを必要としない:
public ActionResult GetFile(string path)
{
//Make sure to do your security checks
using (var source = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
return File(source, "text/html");
}
}
は、なぜこれがマークしましたか?公正かつ明確な質問のように見えました。 – Urbycoz