Использование IsolatedStorage на сервере IIS - PullRequest
5 голосов
/ 28 мая 2010

Я немного озадачен использованием изолированного хранилища на сервере 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 Ответ

1 голос
/ 01 октября 2012

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

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

...