2016-09-01 6 views
0

私はウェブフォームプロジェクトを持っています。私のリンクはwww.qweqwe.com/setup.exe です。私は "www.qweqwe.com/setup.exe"というファイルを自動的にダウンロードすることができます。aspxファイルのダウンロードにセキュリティを設定するにはどうすればよいですか?

私はこれが欲しくない、私はダウンロードのためのセッションが必要です。私は、セッション["scr"]が "OK"であるときにファイル名を変更しないようにしています。みんな

に事前に

(私はClickOnceのを使用しますが、私はしたくないeverypeopleからダウンロードすることができます)

おかげ

答えて

0
//First check for Session Variable 
if(Session["scr"]!=null) 
{ 
//Now if you want file only downloaded by only some specific person then 

if(Session["scr"].ToString()=="You Specific Session value") 
{ 
//Here Your File download code 
} 
} 
0

ファイル(ASHX)をダウンロードするための一般的なハンドラを作成します。

ProcessRequestメソッドでは、セッションを確認してファイルを提供できます。次に例を示します。

public class Download : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
     string file = "setup.exe"; 
     if (File.Exists(context.Server.MapPath(file)) && Session["scr"].ToString() == "Ok") 
     { 
      context.Response.Clear(); 
      context.Response.ContentType = "application/octet-stream"; 
      context.Response.AddHeader("content-disposition", "attachment;filename=" + Path.GetFileName(file)); 
      context.Response.WriteFile(context.Server.MapPath(file)); 
      context.Response.End(); 
     } 
     else 
     { 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("File cannot be found!"); 
     } 
    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 

誰もが直接、それをダウンロードすることはできませんので、あなたのIISでのexeファイルのMIMEを削除することを忘れないでください。

関連する問題