ASP.NET尝试删除网络文件时出现异常

时间:2009-02-13 20:16:36

标签: asp.net security file-io filesystems

我有一个试图删除网络共享上的文件的ASP.NET应用程序。 ASP.NET应用程序的工作进程在域帐户下运行(通过查看TaskManager并使用ShowContexts2.aspx¹确认)。

网络管理员确信,进程帐户是一个组的成员,该组对包含我要删除的文件的目录具有修改权限。

然而,它无法这样做,而是我得到一个例外(将文件路径更改为所有x):

  

System.Web.HttpUnhandledException:类型异常   抛出'System.Web.HttpUnhandledException'。 --->   System.UnauthorizedAccessException:访问路径   '\ xxxxxxx \ xxxxxxx \ xxxxxxx \ xxxxxx.xxx'被拒绝。

有关如何诊断/解决此问题的任何想法?

http://www.leastprivilege.com/ShowContextsNET20Version.aspx

2 个答案:

答案 0 :(得分:0)

确保您的ASP.NET辅助进程可以访问指定的文件路径。

您可以尝试对“所有人”进行“完全控制”访问,然后重新开始访问,直到它能够使用您想要的权限。

答案 1 :(得分:0)

听起来好像你没有在适当的环境下运行。

使用 WNetAddConnection2 Windows API在默认帐户下运行并映射到网络驱动器的建议是以不同的方式处理(一种更安全的方式)。使用此API,您不会更改ASP.net运行的上下文,您可以简单地映射驱动器连接。您可以指定域帐户或本地帐户。您可以让它实际映射驱动器号,或者您只需在不映射字母的情况下对驱动器共享进行身份验证。

我不止一次使用过来自asp.net的这个API,效果很好。因为你没有给ASP.net增加特权,所以这更加安全。

有关WNetAddConnection2 API的更多信息:

http://msdn.microsoft.com/en-us/library/aa385413(VS.85).aspx