4

IIS5 在 SERVER1 上运行。

IIS 中的一个虚拟目录 myfiles 指向“另一台计算机上的共享位置”,//SERVER2/myfilesshare

当我尝试访问该页面时: http://SERVER1/myfiles

...我得到错误:

您无权查看此页面

HTTP 401.1 - 未经授权:登录失败

互联网信息服务

我已经三重检查了 IIS 中的“连接为...”设置。我用来访问共享的凭据是正确的——它们在 Windows 资源管理器中连接到共享时有效,但不是通过 IIS 虚拟目录。我已经尝试向 SERVER2 中的文件夹上的每个人授予完全权限,但没有运气。

有什么想法吗?

4

4 回答 4

8

这就是我解决问题的方法,可能会对你有所帮助。

默认情况下,IISIUSR在使用匿名身份验证时使用为虚拟目录调用的本地用户。它不使用应用程序标识,如果您使用procmon.

如何强制它使用应用程序身份?

很简单,在 IIS 管理器下:

1) 去认证

2)编辑“匿名认证”

3) 选择“应用程序池标识”

4)重新启动IIS,它应该可以工作。

使用 PS 完成相同的操作:Set-WebConfigurationProperty -filter /system.WebServer/security/authentication/AnonymousAuthentication -name username -value ""

此链接包含优点/缺点:http: //blogs.technet.com/b/tristank/archive/2011/12/22/iusr-vs-application-pool-identity-why-use-either.aspx

于 2015-04-21T15:39:23.643 回答
2

权限问题可能很棘手。尝试在“其他计算机”上运行filemon它可以在这里下载:http ://technet.microsoft.com/en-us/sysinternals/bb896642.aspx (它不是一个大应用程序,只是一个小型轻量级工具)

启动 filemon 后,停止监视进程(我相信当您启动应用程序时它默认打开),清除记录的数据,为您无法访问的文件夹创建一个过滤器。启动监控进程。请求您的网页。停止监视进程并在 filemon 中查找“拒绝访问”消息。找到后,filemon 还将提及尝试访问的实际用户的名称。这可能会帮助您找到解决方案。

顺便说一句,当使用 Windows Server 2008 时,您将需要processmonhttp ://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

于 2009-03-06T06:45:16.520 回答
1

想象一个场景,无论出于何种原因,您希望 IIS 服务器访问文件服务器上的共享,但它们不在同一个域中。

如果你可以按照并让它为你工作(我已经用 IIS 7 完成了 Win2008-R1 32 位文件服务器和 Win2008-R2 64 位),那么你应该在任何情况下都处于良好状态。

  • 两台服务器上的同名本地帐户,密码相同
  • 在 IIS 上,用于aspnet_regiis -ga MyAccount授予对 IIS 内脏的本地帐户访问权限
  • 现在将其用作网站的应用程序池标识
  • 使用本地安全策略(管理工具)为本地帐户启用委派信任
  • 重新启动 IIS 服务器
  • 在文件服务器上,使用本地安全策略为本地帐户启用网络访问
  • 创建共享向本地帐户授予所需的权限(根据需要还包括安全选项卡权限)
  • 在两者上打开文件和打印共享端口(尽可能限制),以指出当您在两者之间使用 Windows 资源管理器时它适用于您的位置
  • 返回 IIS,使用文件服务器中共享文件夹的 UNC 路径创建虚拟目录
  • 只需使用直通身份验证(将使用您的本地帐户)
  • 您可以告诉虚拟目录的匿名身份验证设置也使用应用程序池标识

使用可以测试/验证的东西。真正的关键是信任使用Service Account(域或其他)委派,并让 IIS 使用您希望它使用的帐户而不是本地服务器或网络服务。

这花了我一整天的时间才弄清楚。StackOverflow 和其他 Internet 资源中的各种线程帮助我找到了各种资源,但在任何地方都没有找到我的确切答案。希望下一个遇到这个问题的人能够通过我对对我有用的描述来解决问题的速度。

于 2012-10-22T08:35:38.647 回答
0

尝试在虚拟目录安全选项卡上启用 Windows 身份验证(在 IIS 中)。

于 2009-03-06T06:26:39.060 回答