写入文件时未经授权的访问权限

时间:2009-04-01 19:52:58

标签: c# .net-2.0

我有一个asp.net网站,用户可以在其中打印文档。首先将此文档写入服务器上的文件夹,然后由客户端打开/打印。 在IIS服务器上部署网站时,当用户尝试打印文档时,我确实遇到过几次问题。显然,服务器上的IIS用户没有足够的访问权限来写入本地文件夹,从而引发了未经授权的访问异常。

哪一个是IIS用户,如何在.net中为其提供对服务器上文件夹的写入权限?

5 个答案:

答案 0 :(得分:2)

我会给IUSR_MACHINE和NETWORK SERVICE帐户提供写入/修改权限。要实际更改权限,请在Windows资源管理器中找到该文件夹​​,获取“文件夹属性”。在安全选项卡上,单击列表中的用户(您可能必须先将用户“添加”到列表中),然后选中允许列下的相应复选框。

顺便说一句,当我遇到权限问题时,Sysinternals Process Monitor几乎总能解决它。运行procmon.exe,通过排除已知正常进程的进程来设置筛选器(右键单击进程名称,然后选择“Exclude' explorer.exe'”)。我通常也会排除已知的结果,如SUCCESS和其他一些结果。 然后,您可以重现该问题,列表底部将列出一个明亮的“拒绝访问”条目,包括用户帐户的名称以及它尝试访问的特定资产。

下载链接:http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

答案 1 :(得分:0)

通常是NETWORK SERVICE用户,授予它对所需文件夹的写权限。

答案 2 :(得分:0)

该过程经常使用名为“IUSR”的用户。

答案 3 :(得分:0)

在服务器类操作系统上,ASP.NET 2.0在“网络服务”帐户下运行。 (我不确定它是否使用不同的XP帐户。)

不是让 帐户获得更多访问权限,而是可能值得在专用帐户下运行ASP.NET。 This PDF解释了如何做到这一点。 (这解释了IIS 6.0;它在IIS 7.0下可能略有不同,但它可能大致相同。)

答案 4 :(得分:0)

您可以使用ASP.NET模拟 - http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx - 来检查您的程序是否可以在选定的用户帐户下运行。

我发现这对于探索与帐户权限相关的问题非常有用。