title: Using IsolatedStorage on a IIS server
body: <p>I'am a bit confused about the use of <a href="http://msdn.microsoft.com/en-us/library/3ak841sy.aspx" rel="nofollow noreferrer">Isolated Storage</a> on a IIS server.</p>
  
  <p>I understand the goal of <em>Isolated Storage</em> : provides a safe place to store data with no worry about how and where is this place.</p>
  
  <p>Since <em>Isolated Storage</em> have a by-user and by-assembly approach, I'am not too wild about using it on a IIS server where applications have almost their own identity. 
  I haven't really seen the interest of impersonating a web application and almost never seen impersonated web applications myself but this is my point of view. </p>
  
  <p>Using <em>Isolated Storage</em> on a server mean (<em>for Windows Server 2003</em>) :</p>
  
  <ul>
  <li><p>Using Isolated stores in <code>\Documents and Settings\&lt;user&gt;\</code></p></li>
  <li><p>Which mean <code>\Documents and Settings\Default User\</code> when the application pool is owned by <em>Local System</em> or <em>Network Services</em> I guess</p></li>
  <li><p>Which also mean <em>Write</em> rights on this folder for <em>Local System</em> or <em>Network Services</em></p></li>
  <li><p>Using of impersonation</p></li>
  </ul>
  
  <p>Regarding a web application (logic), these ideas are confusing me... Document and Settings ? Default User ? Enable impersonation just for storage ? No control about storage on server ? Uh ? </p>
  
  <p>Some points on the MSDN : </p>
  
  <ul>
  <li><p><strong>Server storage</strong>. Server applications can use isolated storage to provide individual stores [...]. Because isolated storage is always segregated by user, the server <strong>must impersonate</strong> the user making the request. [...]</p></li>
  <li><p>Using isolated storage enables partially trusted applications to store data in a manner that is controlled by the computer's security policy.</p></li>
  <li><p>by default, code running from the local computer, a <strong>local network</strong>, [...] is granted the right to use isolated storage. Should I understand <em>Network Services</em> ? I would be surprised. That's not the case on my IIS servers (Windows 2003).</p></li>
  </ul>
  
  <p>And then I'am a front of a dilema : use <code>System.IO.Packaging</code> (with Isolated Storage inside) on web applications or find an alternative ? Using <code>IO.Packaging</code> mean you must enable isolated storage ?</p>
  
  <p>Am I wrong in my approach ? Did I miss something ?</p>
  
  <p>I precise I don't especially want to use/enable it on a IIS server, I would like to understand if enabling it on a such environment is a good practice.</p>
  
  <p>Any point of view is appreciated and an explanation about an "Isolated Storage with IIS philosophy" could be an anwser.</p>
  
  <p>Thanks !</p>