Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
El acceso al almacenamiento aislado siempre está restringido al usuario que lo creó. Para implementar este tipo de aislamiento, Common Language Runtime usa la misma noción de identidad de usuario que reconoce el sistema operativo, que es la identidad asociada al proceso en el que se ejecuta el código cuando se abre el almacén. Esta identidad es una identidad de usuario autenticada, pero la suplantación puede hacer que la identidad del usuario actual cambie dinámicamente.
El acceso al almacenamiento aislado también está restringido según la identidad asociada al dominio y al ensamblado de la aplicación, o solo a la identidad del ensamblado. El tiempo de ejecución obtiene estas identidades de las siguientes maneras:
La identidad de dominio representa la evidencia de la aplicación, que en el caso de una aplicación web podría ser la dirección URL completa. En el caso del código hospedado en shell, la identidad de dominio podría basarse en la ruta de acceso del directorio de la aplicación. Por ejemplo, si el archivo ejecutable se ejecuta desde la ruta de acceso C:\Office\MyApp.exe, la identidad de dominio sería C:\Office\MyApp.exe.
La identidad del ensamblado es la evidencia del ensamblado. Esto puede provenir de una firma digital criptográfica, que puede ser el nombre seguro del ensamblado, el editor de software del ensamblado o su identidad de dirección URL. Si un ensamblado tiene un nombre seguro y una identidad del publicador de software, se usa la identidad del publicador de software. Si el ensamblado procede de Internet y no está firmado, se usa la identidad de la dirección URL. Para obtener más información sobre los ensamblados y los nombres sólidos, consulte Programación con ensamblados.
Los almacenes itinerantes se mueven con un usuario que tiene un perfil de usuario itinerante. Los archivos se escriben en un directorio de red y se descargan en cualquier equipo en el que el usuario inicie sesión. Para más información sobre los perfiles de usuario en itinerancia, consulte IsolatedStorageScope.Roaming.
Al combinar los conceptos de identidad de usuario, dominio y ensamblado, el almacenamiento aislado puede aislar los datos de las maneras siguientes, cada uno de los cuales tiene sus propios escenarios de uso:
Cualquiera de estos aislamientos se puede combinar con un perfil de usuario itinerante. Para obtener más información, consulte la sección Almacenamiento aislado y itinerancia.
En la ilustración siguiente se muestra cómo se aíslan los almacenes en distintos ámbitos:
Excepto para los almacenes móviles, el almacenamiento aislado siempre está aislado implícitamente por el equipo porque usa las instalaciones de almacenamiento que son locales en un equipo determinado.
Importante
El almacenamiento aislado no está disponible para las aplicaciones de la Tienda Windows 8.x. En su lugar, usa las clases de datos de la aplicación en los Windows.Storage espacios de nombres incluidos en la API de Windows Runtime para almacenar datos y archivos locales. Para obtener más información, consulte Datos de la aplicación en el Centro de desarrollo de Windows.
Aislamiento por usuario y ensamblaje
Cuando el ensamblado que usa el almacén de datos debe ser accesible desde el dominio de cualquier aplicación, el aislamiento por usuario y ensamblado es adecuado. Normalmente, en esta situación, el almacenamiento aislado se usa para almacenar datos que se aplican en varias aplicaciones y no está vinculado a ninguna aplicación determinada, como el nombre del usuario o la información de licencia. Para acceder al almacenamiento aislado por usuario y ensamblaje, el código debe tener la confianza necesaria para transferir información entre aplicaciones. Normalmente, el aislamiento por usuario y ensamblado se permite en intranets, pero no en Internet. Llamar al método estático IsolatedStorageFile.GetStore y pasar un usuario y un ensamblado IsolatedStorageScope devuelve almacenamiento con este tipo de aislamiento.
En el ejemplo de código siguiente se recupera un espacio de almacenamiento aislado por el usuario y el ensamblaje. Se puede acceder al almacén a través del isoFile objeto .
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly, Nothing, Nothing)
Para obtener un ejemplo que use los parámetros de evidencia, vea GetStore(IsolatedStorageScope, Evidence, Type, Evidence, Type).
El GetUserStoreForAssembly método está disponible como acceso directo, como se muestra en el ejemplo de código siguiente. Este acceso directo no se puede usar para abrir tiendas que permitan la itinerancia; utilice GetStore en tales casos.
IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForAssembly();
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetUserStoreForAssembly()
Aislamiento por usuario, dominio y ensamblado
Si la aplicación usa un ensamblado de terceros que requiere un almacén de datos privado, puede usar el almacenamiento aislado para almacenar los datos privados. El aislamiento por usuario, dominio y ensamblado garantiza que solo el código de un ensamblado determinado pueda tener acceso a los datos, y solo cuando la aplicación usa el ensamblado que se estaba ejecutando cuando el ensamblado creó el almacén y solo cuando el usuario para el que se creó el almacén ejecuta la aplicación. El aislamiento por usuario, dominio y ensamblado impide que el ensamblado de terceros filtre datos a otras aplicaciones. Este tipo de aislamiento debe ser la opción predeterminada si sabe que desea usar el almacenamiento aislado, pero no está seguro del tipo de aislamiento que se va a usar. Al llamar al método estático GetStore de IsolatedStorageFile y al pasar un usuario, un dominio y un ensamblado IsolatedStorageScope, devuelve un almacenamiento con este tipo de aislamiento.
En el siguiente ejemplo de código, se recupera un almacén que está aislado por usuario, dominio y ensamblado. Se puede acceder al almacén a través del isoFile objeto .
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Domain |
IsolatedStorageScope.Assembly, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Domain Or _
IsolatedStorageScope.Assembly, Nothing, Nothing)
Otro método está disponible como acceso directo, como se muestra en el ejemplo de código siguiente. Este acceso directo no se puede usar para abrir tiendas que permitan la itinerancia; utilice GetStore en tales casos.
IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForDomain();
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetUserStoreForDomain()
Almacenamiento aislado y itinerancia
Los perfiles de usuario móviles son una característica de Windows que permite a un usuario configurar una identidad en una red y usar esa identidad para iniciar sesión en cualquier equipo de red y llevar toda la configuración personalizada. Un ensamblado que usa almacenamiento aislado puede especificar que el almacenamiento aislado del usuario debe moverse con el perfil de usuario móvil. La itinerancia se puede utilizar junto con el aislamiento por usuario y ensamblado, o con aislamiento por usuario, dominio y ensamblado. Si no se usa un ámbito de itinerancia, los almacenamientos no itinerarán incluso si se usa un perfil de usuario itinerante.
En el ejemplo de código siguiente se obtiene un almacén itinerante aislado por usuario y ensamblaje. Se puede acceder al almacén a través del isoFile objeto .
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly |
IsolatedStorageScope.Roaming, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly Or _
IsolatedStorageScope.Roaming, Nothing, Nothing)
Se puede agregar un ámbito de dominio para crear un almacén móvil aislado por usuario, dominio y aplicación. En el ejemplo de código siguiente se muestra esto.
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain |
IsolatedStorageScope.Roaming, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain Or _
IsolatedStorageScope.Roaming, Nothing, Nothing)