我有一个试图删除网络共享上的文件的ASP.NET应用程序。 ASP.NET应用程序的工作进程在域帐户下运行(通过查看TaskManager并使用ShowContexts2.aspx¹确认)。
网络管理员确信,进程帐户是一个组的成员,该组对包含我要删除的文件的目录具有修改权限。
然而,它无法这样做,而是我得到一个例外(将文件路径更改为所有x):
System.Web.HttpUnhandledException:类型异常 抛出'System.Web.HttpUnhandledException'。 ---> System.UnauthorizedAccessException:访问路径 '\ xxxxxxx \ xxxxxxx \ xxxxxxx \ xxxxxx.xxx'被拒绝。
有关如何诊断/解决此问题的任何想法?
答案 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