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

我明白的目标 隔离存储 :提供一个安全的地方来存储数据,无需担心这个地方如何以及在哪里。

自从 隔离存储 虽然有按用户和按程序集的方法,但我不太热衷于在 IIS 服务器上使用它,因为应用程序几乎有自己的身份。我还没有真正看到模拟 Web 应用程序的好处,而且我自己几乎从未见过模拟的 Web 应用程序,但这是我的观点。

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

  • 使用独立商店 \Documents and Settings\<user>\

  • 也就是说 \Documents and Settings\Default User\ 当应用程序池属于 本地系统 或者 网络服务 我猜

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

  • 使用冒充

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

MSDN 上的一些观点:

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

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

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

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

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

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

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

谢谢 !

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top