Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net IIS服务正在以本地系统帐户的身份运行,因此如何授予其共享目录权限?_Asp.net - Fatal编程技术网

Asp.net IIS服务正在以本地系统帐户的身份运行,因此如何授予其共享目录权限?

Asp.net IIS服务正在以本地系统帐户的身份运行,因此如何授予其共享目录权限?,asp.net,Asp.net,我的ASP页面从共享目录读取文件并将其发送给用户 Response.Clear(); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition:", string.Format("attachment; filename={0}", fileName)); Response.WriteFile(filePath

我的ASP页面从共享目录读取文件并将其发送给用户

        Response.Clear();
        Response.ContentType = "application/octet-stream";
        Response.AddHeader("Content-Disposition:", string.Format("attachment; filename={0}", fileName));
        Response.WriteFile(filePath);
        Response.End();
此ASP代码在web服务器上运行,我认为它是作为本地系统帐户运行的,因为IIS是。filePath指向文件服务器\\fileserver\shared\abc.pdf上的文件


当我在本地机器上调试代码时,该文件将从ASP页面正确读取。但是,当我在web服务器上运行它时,它无法读取文件。我需要授予\fileserver\shared什么权限才能使ASP页正确读取文件?显然,本地系统不是权限页中的有效用户登录。

IIS默认情况下以“网络服务”的形式运行其应用程序池。这是IIS框上的本地帐户。如果要访问网络共享,则需要将应用程序池标识重新配置为具有共享访问权限的帐户,例如域帐户


如果两个框都不在域中,则可以在两台计算机上创建用户名和密码(在两台计算机上相同),并将其用于应用程序池,将共享上的权限设置为允许文件服务器上的该(本地)用户访问,您可以尝试模拟允许访问共享的用户。将此添加到web.config中:

<identity impersonate="true" userName="accountname" password="password" />


Ugh,在web.config中嵌入密码总是个坏主意。如果执行此路径,则应加密web.config以隐藏它。无法更改应用程序池标识,因为它将影响同一服务器所服务的所有其他网页。在当前环境中,也不可能在文件中存储密码。考虑对文件服务器上的另一个进程进行远程调用,并通过远程调用传递文件内容。还有比这更简单的方法吗?