Использование IsolatedStorage на сервере IIS

Я немного озадачен использованием изолированного хранилища на сервере IIS.

Я понимаю цель изолированного хранилища: обеспечить безопасное место для хранения данных, не беспокоясь о том, как и где это место.

Поскольку у изолированного хранилища есть индивидуальный подход и подход к сборке, я не слишком склонен использовать его на сервере IIS, где приложения имеют почти собственную идентичность. Я на самом деле не видел интереса к подражанию веб-приложению и почти никогда не видел себя подражаемым веб-приложениям, но это моя точка зрения.

Использование изолированного хранилища на сервере означает (для Windows Server 2003):

  • Использование изолированных магазинов в \Documents and Settings\<user>\

  • Что означает \Documents and Settings\Default User\ я думаю, когда пул приложений принадлежит локальной системе или сетевым службам

  • Что также означает права на запись в эту папку для локальной системы или сетевых служб.

  • Использование подражания

Что касается веб-приложения (логики), эти идеи меня смущают... Документ и настройки? Пользователь по умолчанию? Включить олицетворение только для хранения? Нет контроля над хранением на сервере? А?

Некоторые моменты на MSDN:

  • Серверное хранилище. Серверные приложения могут использовать изолированное хранилище для предоставления [...] отдельных хранилищ. Поскольку изолированное хранилище всегда разделяется пользователем, сервер должен выдавать себя за пользователя, выполняющего запрос. [...]

  • Использование изолированного хранилища позволяет частично доверенным приложениям хранить данные способом, который контролируется политикой безопасности компьютера.

  • по умолчанию код, запущенный с локального компьютера, из локальной сети, [...] получает право использовать изолированное хранилище. Должен ли я понимать сетевые службы? Я был бы удивлен. Это не относится к моим серверам IIS (Windows 2003).

И тогда я стою перед дилеммой System.IO.Packaging (с изолированным хранилищем внутри) на веб-приложениях или найти альтернативу? С помощью IO.Packaging значит вы должны включить изолированное хранилище?

Я ошибаюсь в своем подходе? Я что-то пропустил?

Я уверен, что не особенно хочу использовать / включать его на сервере IIS, я хотел бы понять, является ли целесообразным включение его в такой среде.

Любая точка зрения приветствуется, и объяснение "изолированного хранилища с IIS-философией" может дать ответ.

Спасибо!

1 ответ

Решение

Если по какой-то причине вам потребуется использовать изолированное хранилище на стороне сервера, то вы должны олицетворять пользователя, и для этого вам нужно будет использовать встроенную проверку подлинности Windows, чтобы получить основной пользовательский контекст http, заполненный запрашивающим пользователем. Поток запроса переключил бы удостоверение на пользователя-запросчика, и я предположил (не проверял), что вы увидите изолированное хранилище под этой учетной записью.

Я все еще не уверен, когда я буду использовать изолированное хранилище на стороне сервера для приложения IIS, которое обычно в корпоративной среде работает в веб-ферме. Было бы против передовой практики хранить что-либо локально для каждого пользователя. Если этот сервер выходит из строя, то вы потеряли эти данные.

Другие вопросы по тегам