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 的完全访问权限吗?它安全吗?

4

3 回答 3

2

您应该考虑整个应用程序的权限以及它可以访问的资源。

好的做法是在服务器上创建一个新用户,将其从用户组中删除并将其添加为 IIS_IUSER 组的成员。

现在可以为该用户授予应用程序访问的文件夹的访问权限,为该用户创建数据库登录名并映射应用程序数据库也很好。

这样,您的应用程序通过权限与其他应用程序隔离。

于 2013-11-12T09:27:17.067 回答
1

如果您想允许文件上传,那么这就是您必须做的。是的,这可能是一个安全问题 - 您需要确保其他所有内容都已锁定。

为上传文件夹授予“网络服务”的“写入”权限。为下载文件夹授予“网络服务”的“读取”权限。

无需授予网络服务完全控制权。

于 2013-11-12T09:54:00.670 回答
0

授予对该文件夹的 IIS_IUSER 的写访问权并尝试。

于 2013-11-12T09:14:26.030 回答