Использование 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, которое обычно в корпоративной среде работает в веб-ферме. Было бы против передовой практики хранить что-либо локально для каждого пользователя. Если этот сервер выходит из строя, то вы потеряли эти данные.