5

我对在 IIS 服务器上使用隔离存储感到有点困惑。

我理解独立存储的目标:提供一个安全的地方来存储数据,而不必担心这个地方如何以及在哪里。

由于独立存储具有按用户和按程序集的方法,因此我不太愿意在应用程序几乎拥有自己的身份的 IIS 服务器上使用它。我还没有真正看到模拟 Web 应用程序的兴趣,我自己也几乎从未见过模拟 Web 应用程序,但这是我的观点。

在服务器上使用独立存储意味着(对于 Windows Server 2003):

  • \Documents and Settings\<user>\

  • 这意味着\Documents and Settings\Default User\当应用程序池由本地系统网络服务拥有时,我猜

  • 这也意味着本地系统网络服务的此文件夹的写入权限

  • 使用冒名顶替

关于 Web 应用程序(逻辑),这些想法让我感到困惑……文档和设置?默认用户?仅为存储启用模拟?无法控制服务器上的存储?呃?

MSDN上的一些观点:

  • 服务器存储。服务器应用程序可以使用隔离存储来提供单独的存储 [...]。由于隔离存储始终由用户隔离,因此服务器必须模拟发出请求的用户。[...]

  • 使用隔离存储使部分受信任的应用程序能够以计算机安全策略控制的方式存储数据。

  • 默认情况下,从本地计算机、本地网络、[...] 运行的代码被授予使用隔离存储的权利。我应该了解网络服务吗?我会感到惊讶。在我的 IIS 服务器 (Windows 2003) 上并非如此。

然后我陷入了困境:System.IO.Packaging在 Web 应用程序上使用(内部带有独立存储)还是找到替代方案?使用IO.Packaging意味着您必须启用隔离存储?

我的方法错了吗?我错过了什么 ?

我确切地说我不想在 IIS 服务器上使用/启用它,我想了解在这样的环境中启用它是否是一个好习惯。

任何观点都值得赞赏,关于“具有 IIS 理念的隔离存储”的解释可能是一个答案。

谢谢 !

4

1 回答 1

1

如果您出于某种原因需要使用服务器端隔离存储,那么您必须模拟用户,并且为此您需要使用 Windows 集成身份验证,以便获得由请求用户填充的 http 上下文的用户主体。请求线程会将身份切换为请求者用户,我假设(尚未测试)您会在该帐户下看到隔离存储。

我仍然不确定何时将服务器端的隔离存储用于通常在企业环境中在网络场上运行的 IIS 应用程序。每个用户在本地存储任何东西都是违反最佳实践的。如果该服务器出现故障,那么您就丢失了该数据。

于 2012-10-01T06:02:06.350 回答