如何设置ASP.NET应用程序的权限,以使用Windows身份validation在IIS6下运行,但不是“世界可读”

我们有一个运行Server 2003,IIS 6和SQL Server Express的部门Web服务器。 IIS仅configuration为Windows身份validation,并且所有应用程序池都configuration为使用networking服务帐户。 我们运行了几个ASP.NET应用程序,其中大部分都访问SQL Server数据库。 在这些应用程序的web.config(或其他地方)中,我们有所需的连接string来访问数据库。

我最近意识到,任何人都可以浏览持有Web服务器文件的共享(“Authenticated Users”具有读取权限),因为它位于服务器上由于各种原因共享的另一个目录下。

我试图删除“世界读取”访问权限,但用户不能再运行应用程序(他们无法读取文件共享,这是预期的行为,但这也阻止了他们运行应用程序)。 我仍然可以运行应用程序,因为我是pipe理组的一部分,该组仍然对应用程序文件夹具有完全控制权。

我的问题(最后)是:我可以使用Windows权限和IIS设置的组合来满足这些需求:

  1. 我们需要知道哪些用户正在使用应用程序,并确定当前用户在每个应用程序中拥有哪些angular色/权限。
  2. 我们需要/希望将数据库连接string保存在web.config或其他应用程序文件中(太多的工作将其全部移到其他地方)。
  3. 我们需要阻止用户浏览文件共享和阅读应用程序内部的连接string等内容。 (我们希望不必将应用程序移动到新的共享位置!)

我一直在努力这一段时间,并会感激任何build议!

您需要将这些文件从共享中移出。 这是唯一的方法。 其他任何事情都将打破Windows身份validation或将允许这些文件在共享上可读。 IIS和SMB都评估相同的NTFS权限,所以没有办法让它们适用于另一个而不适用于另一个。