1

私のコードビハインド

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)
{
    DirectoryInfo theFolder = new DirectoryInfo(@"C:\temp\Server_Attachments\6");
    string Attachment = "";
    foreach (FileInfo nextFile in theFolder.GetFiles())
    {
        Attachment += "<a href=\"C:\\temp\\Server_Attachments\\6\\blabla.xls\">" + nextFile.ToString() + "</a><br />";
        div1.InnerHtml = Attachment;
    }
}

protected void Attach_File(object sender, EventArgs e)
{
    FileUpload1.SaveAs(@"C:\Server_Attachments\6");
}
} 

私のHTMLページはこのようなものです

<div id="div1" runat="server"></div>

<asp:Label ID="Label1" runat="server" Text=" Attach a file : "></asp:Label><br />

<asp:FileUpload ID="FileUpload1" runat="server" Font-Names="Tahoma" Font-Size="Small" />
<br />

<asp:Button ID="Button2" runat="server" Text=" Attach " Font-Names="Tahoma" Font-  Size="Small" OnClick="Attach_File" />

ハイパーリンクもアップロードも機能していません:(

  • ハイパーリンクをクリックしても何も起こりません (「対象をファイルに保存」は機能していますが)。

  • アップロードしようとすると、「パス 'C:\Server_Attachments\6' へのアクセスが拒否されました」というエラーが表示されます。

これは明らかにセキュリティの問題です。プログラムを実行しているアカウントを確認しましたが、それは NETWORK SERVICE です。

これを修正するにはどうすればよいですか? NETWORK SERVICE へのフル アクセスを許可できますか? 安全ですか?

4

3 に答える 3

2

アプリケーション全体のアクセス許可と、アプリケーションがアクセスできるリソースを考慮する必要があります。

サーバー上に新しいユーザーを作成し、これをユーザー グループから削除して、IIS_IUSER グループのメンバーとして追加することをお勧めします。

アプリケーションがアクセスするフォルダーに、このユーザーにアクセス権を付与できるようになりました。また、このユーザーのデータベース ログインを作成し、アプリケーション データベースをマップすることもお勧めします。

このようにして、アプリケーションは権限によって他のアプリケーションから分離されます。

于 2013-11-12T09:27:17.067 に答える
1

ファイルのアップロードを許可したい場合は、それがあなたがしなければならないことです。はい、それは潜在的にセキュリティ上の問題です。他のすべてがロックダウンされていることを確認する必要があります。

アップロード フォルダーの「ネットワーク サービス」に「書き込み」アクセス権を付与します。ダウンロードフォルダーの「ネットワークサービス」に「読み取り」アクセスを付与します。

Network Service にフル コントロールを付与する必要はありません。

于 2013-11-12T09:54:00.670 に答える
0

そのフォルダの IIS_IUSER に書き込みアクセス権を付与して試してください。

于 2013-11-12T09:14:26.030 に答える