ASP Win 8.1 上的网络权限允许网络用户保存文件?
ASP Net Permissions on Win 8.1 to allow web users to save File?
我正在开发一个使用 ASP.NET 和 IIS 8.5 的网站。
该站点目前 运行 在我的开发机器(标准 win 8.1 笔记本电脑)上,我可以在该站点周围浏览一般情况。
当用户试图将文件保存到文件夹时,我的问题就来了。我收到错误:
Access to the folder blah is denied
在网上搜索后,我发现解决这个问题的方法是将文件夹的写权限授予 ASP.NET 使用的用户。
我已经授予 I_USERS 组、应用程序池用户和网络服务的写权限,但这仍然没有解决问题。
我还看到用户 ASPNET 也必须添加到权限中,但是我的机器上似乎没有该用户。 - 这就是我收到错误的原因,还是完全是其他原因?
一些代码:
标记:
<div class="col-sm-10" Style="float: left; padding-left: 10px;">
<asp:FileUpload ID="FileUploader" style="width:100%" runat="server" CssClass="text" />
</div>
/*****Some other controls (eg.textboxes) here *****/
<div class="row">
<div class="col-sm-12" style="margin-top:10px;">
<asp:Button ID="uploadBTN" runat="server" CssClass="frbtn" OnClick="uploadBTN_Click" Text="Upload Video" Style="width: 20%; float: right;" />
</div>
</div>
隐藏代码:
protected void uploadBTN_Click(object sender, EventArgs e)
{
FileUploader.SaveAs(FRConfig.VideoFolder); //This bit does the saving
Video v = new Video(FileUploader.FileName, fileDescripTB.Text);//This saves the video data to a database.
Helpers.Show("Video Uploaded Successfully!"); //This launches an alert to state it has been sucessfully uploaded.
}
谢谢
使用 IIS 默认设置时,授予对 IIS_IUSRS
的写入权限应该就足够了。 App Pool User
自动成为 IIS_IUSRS
的成员,仅当您更改应用程序池的标识时才需要 Network Service
。
以下 aspx 页面测试默认网站的写入权限:
<%@ Page Language="C#" debug="true"%>
<script runat="server">
void Page_Load() {
System.IO.File.Copy(@"C:\inetpub\wwwroot\iis-85.png",@"C:\inetpub\wwwroot\new.png",true);
}
</script>
您不应允许对网站根目录下的位置进行写访问,将文件上传到不同的目录。
我正在开发一个使用 ASP.NET 和 IIS 8.5 的网站。
该站点目前 运行 在我的开发机器(标准 win 8.1 笔记本电脑)上,我可以在该站点周围浏览一般情况。
当用户试图将文件保存到文件夹时,我的问题就来了。我收到错误:
Access to the folder blah is denied
在网上搜索后,我发现解决这个问题的方法是将文件夹的写权限授予 ASP.NET 使用的用户。
我已经授予 I_USERS 组、应用程序池用户和网络服务的写权限,但这仍然没有解决问题。
我还看到用户 ASPNET 也必须添加到权限中,但是我的机器上似乎没有该用户。 - 这就是我收到错误的原因,还是完全是其他原因?
一些代码:
标记:
<div class="col-sm-10" Style="float: left; padding-left: 10px;">
<asp:FileUpload ID="FileUploader" style="width:100%" runat="server" CssClass="text" />
</div>
/*****Some other controls (eg.textboxes) here *****/
<div class="row">
<div class="col-sm-12" style="margin-top:10px;">
<asp:Button ID="uploadBTN" runat="server" CssClass="frbtn" OnClick="uploadBTN_Click" Text="Upload Video" Style="width: 20%; float: right;" />
</div>
</div>
隐藏代码:
protected void uploadBTN_Click(object sender, EventArgs e)
{
FileUploader.SaveAs(FRConfig.VideoFolder); //This bit does the saving
Video v = new Video(FileUploader.FileName, fileDescripTB.Text);//This saves the video data to a database.
Helpers.Show("Video Uploaded Successfully!"); //This launches an alert to state it has been sucessfully uploaded.
}
谢谢
使用 IIS 默认设置时,授予对 IIS_IUSRS
的写入权限应该就足够了。 App Pool User
自动成为 IIS_IUSRS
的成员,仅当您更改应用程序池的标识时才需要 Network Service
。
以下 aspx 页面测试默认网站的写入权限:
<%@ Page Language="C#" debug="true"%>
<script runat="server">
void Page_Load() {
System.IO.File.Copy(@"C:\inetpub\wwwroot\iis-85.png",@"C:\inetpub\wwwroot\new.png",true);
}
</script>
您不应允许对网站根目录下的位置进行写访问,将文件上传到不同的目录。