授予 IIS Web 应用程序访问网络驱动器上文件的权限

Give IIS web application permission to access files on network drive

我使用 C# 和 .NET 开发了一个 Intranet Web 应用程序,它使用 Windows 身份验证

对用户进行身份验证

其中一个页面从存储在网络驱动器上的 excel 文件中读取数据,并将信息显示在屏幕上。要访问存储 excel 文件的网络驱动器区域,您需要是某个活动目录组的成员。

当我 运行 本地应用程序工作正常,因为它将 运行ning 在我的登录 ID 下,该 ID 具有网络驱动器的权限。

然而,当我在我们的网络服务器上访问应用程序的实时版本时,我得到

System.UnauthorizedAccessException: Access to the path '\foo\bar.xlsx' is denied.

我猜这是因为 IIS 使用的用户没有访问网络驱动器的权限。

我已经在 IIS 中设置了应用程序池以使用 ApplicationPoolIdentity,我假设它使用 IIS_USRS,但是我如何向网络驱动器授予该权限?

如果我将 IIS 中的应用程序池更改为使用具有权限的帐户(例如我的详细信息)而不是 ApplicationPoolIdentity,我会收到以下错误:

Service Unavailable

HTTP Error 503. The service is unavailable.

非常感谢任何帮助。

.xlsx 文件有

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

哑剧类型。转到有问题的 IIS,单击 mime 类型 按钮并在 table 检查它是否具有我所说的 mime 类型。

我通过将服务器帐户添加到有权查看文件夹的活动目录组解决了我的问题。

拒绝访问: 同样的错误,但不同的场景。使用 C# .NET 访问 Active Directory 以通过 System.DirectoryServices.AccountManagement 更改密码。我能够阅读,但自然而然地被拒绝访问。这是因为应用程序没有修改 Active Directory 的权限。要解决此问题,我必须在 web.config 中添加一个具有帐户操作员 AD 权限的帐户。以下是我需要添加的内容以使其适用于我们的情况。

<add key="adAdminUser" value="USERNAME"/>
<add key="adAdminPassword" value="PASSWORD"/>
<add key="adDomainFull" value="BLANK4US"/>