经典ASP-文件移动IIS的权限被拒绝

经典ASP-文件移动IIS的权限被拒绝,iis,asp-classic,Iis,Asp Classic,我的Windows权限有点问题,我有一个脚本没有编写,它将文件上载到本地临时区域,然后被移动并重命名为UNC共享 我试过: 创建一个具有域权限的域用户,该域用户用于连接身份和目录安全-身份验证,并且在目标源上作为读/写用户。我已与该用户一起登录到测试服务器,并验证该用户是否可以写入源位置,它可以写入源位置 但我得到了错误信息: Microsoft VBScript运行时错误“800a0046” 拒绝许可 /Admin/News/insert.asp,第56行 试图执行移动的相关代码可能与安全问题

我的Windows权限有点问题,我有一个脚本没有编写,它将文件上载到本地临时区域,然后被移动并重命名为UNC共享

我试过:

创建一个具有域权限的域用户,该域用户用于连接身份和目录安全-身份验证,并且在目标源上作为读/写用户。我已与该用户一起登录到测试服务器,并验证该用户是否可以写入源位置,它可以写入源位置

但我得到了错误信息:

Microsoft VBScript运行时错误“800a0046”

拒绝许可

/Admin/News/insert.asp,第56行

试图执行移动的相关代码可能与安全问题无关:

    if fileUploaded then
    dim fs,f,savedFileLocation
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    savedFileLocation = server.MapPath("/Files") & "\Briefings\" & right("00" & day(now()),2) & right("00" & month(now()),2) & year(now()) & " - " & fileName
    if not fs.FileExists(savedFileLocation) then
        Set f=fs.GetFile(pathToFile)
        f.Move(savedFileLocation)
    end if
    set f=nothing
    set fs=nothing
end if

任何提示都会得到感谢,我发现IIS的安全权限是一场噩梦

IIS6支持应用程序池,您可以使应用程序池作为命名用户帐户而不是IUSR运行。如果你手头有一个广告域,那么这可以是一个域帐户,并且共享很简单。如果你没有使用广告域名,那么你仍然可以解决这个问题——只需在两个框上创建一个用户名和密码相同的帐户,NTLM就会自动工作


我已经有一段时间没有接触IIS6了,但我似乎记得IIS6是作为NT AUTHORITY\NETWORK服务开箱即用的。如果是这种情况,并且您手头有一个域,那么您也可以授予magic domain\MACHINENAME$帐户权限,它也应该可以工作

尝试打开站点中此UNC文件夹/共享的IIS属性我猜它已设置为虚拟文件夹,并查看您的用户是否具有写入权限。基本上,我宁愿给应用程序池用户写权限,而不是创建一个新的,但这是你的选择。因为站点的应用程序池必须在此用户名下运行


在任何情况下,由于文件传输发生在应用程序池用户下,该用户在folderslocal和UNC上的权限共享,如果您有群集或负载平衡系统,则需要在每个web服务器上验证。

可能会有所帮助,但由于不同版本的答案不同,您运行的IIS版本是什么?但基本上看一下匿名帐户通常设置为IUSR_machinename的内容,并尝试授予此帐户权限。感谢您在Server 2003上运行IIS6快速响应。由于IUSR帐户在源服务器上不可用,这对UNC路径有效吗?您可以在IIS网站的文档安全性中将匿名帐户设置为域帐户,然后将该帐户权限授予您的UNC路径。但要小心你给它多少访问权限,因为它将被用作网站的匿名帐户,如果没有正确锁定,可能会危及安全。谢谢-我会尝试一下,看看它是如何运行的。