-1

サーバー上のフォルダーに保存されたpdfファイルを含むWebサイトがあり、ログインして選択したロールに属するユーザーのみがフォルダー内のこのファイルへのアクセスを設定する必要があります! 助けてくれてありがとう:) :)

状況を説明してください: フォルダーの名前は「ファイル」です。フォルダー内のファイルの名前は「f.pdf」です。この URL を入力すると、「www.website.com/files/f.pdf」と入力されます。認証されたユーザー?? どうすればこの問題を解決できますか??

4

1 に答える 1

2

フォルダーをルートの外に移動するか、App_Data などの保護されたフォルダーに配置して、直接参照できないようにします。次に、ユーザーを認証してファイルを提供できる「ハンドラー」ページを作成します。ハンドラーのコードは次のようになります。

@{
    WebSecurity.RequireAuthenticatedUser();
    var file = Request["file"];
    if(Path.GetFileExtension(file).Equals(".pdf")){
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment; filename=" + file);
        Response.WriteFile(Server.MapPath("~/App_Data/PDF/" + file);
    }
}

ページでは、標準のリンクを提供するだけで済みますが、このリンクhrefはハンドラーとクエリ文字列に追加されたファイル名を指している必要があります。

<a href="~/handler.cshtml?file=myPdf.pdf">Click to download</a>
于 2013-03-07T07:43:13.050 に答える