격리된 스토리지Isolated Storage

데스크톱 앱에서 격리된 스토리지는 코드와 저장된 데이터를 연결하는 표준화된 방법을 정의하여 격리와 안전을 제공하는 데이터 스토리지 메커니즘입니다.For desktop apps, isolated storage is a data storage mechanism that provides isolation and safety by defining standardized ways of associating code with saved data. 표준화를 통해 다음과 같은 여러 가지 이점도 활용할 수 있습니다.Standardization provides other benefits as well. 관리자는 파일 스토리지 구성, 보안 정책 설정, 사용하지 않은 데이터 삭제를 위해 격리된 스토리지를 조작하는 도구를 사용할 수 있습니다.Administrators can use tools designed to manipulate isolated storage to configure file storage space, set security policies, and delete unused data. 격리된 스토리지를 사용하면 더 이상 파일 시스템에서 안전한 위치를 지정하기 위해 코드에 고유 경로를 포함할 필요가 없으며 격리된 스토리지에만 액세스할 수 있는 다른 애플리케이션으로부터 데이터가 보호됩니다.With isolated storage, your code no longer needs unique paths to specify safe locations in the file system, and data is protected from other applications that only have isolated storage access. 애플리케이션의 스토리지 영역 위치를 나타내는 하드 코드된 정보는 필요하지 않습니다.Hard-coded information that indicates where an application's storage area is located is unnecessary.

중요

Windows 8.x 스토어 앱에는 격리된 스토리지를 사용할 수 없습니다.Isolated storage is not available for Windows 8.x Store apps. 대신에 Windows Runtime API에 포함된 Windows.Storage 네임스페이스의 애플리케이션 데이터 클래스를 사용하여 로컬 데이터 및 파일을 저장합니다.Instead, use the application data classes in the Windows.Storage namespaces included in the Windows Runtime API to store local data and files. 자세한 내용은 Windows 개발자 센터에서 애플리케이션 데이터 를 참조하세요.For more information, see Application data in the Windows Dev Center.

이 항목에는 다음과 같은 단원이 포함되어 있습니다.This topic contains the following sections:

데이터 구획 및 저장소Data Compartments and Stores

애플리케이션에서 파일에 데이터를 저장하는 경우, 스토리지 위치가 다른 애플리케이션에 알려져 손상될 가능성을 최소화할 수 있도록 파일 이름과 스토리지 위치는 신중하게 선택되어야 합니다.When an application stores data in a file, the file name and storage location must be carefully chosen to minimize the possibility that the storage location will be known to another application and, therefore, will be vulnerable to corruption. 이러한 문제를 관리하기 위해 적절한 표준 시스템이 없는 경우 스토리지 충돌을 최소화하는 ad hoc 기법을 개발하는 것은 복잡하고 결과를 신뢰할 수도 없습니다.Without a standard system in place to manage these problems, developing ad hoc techniques that minimize storage conflicts can be complex, and the results can be unreliable.

격리된 스토리지를 사용하면 데이터는 항상 사용자와 어셈블리별로 격리됩니다.With isolated storage, data is always isolated by user and by assembly. 어셈블리의 원본 또는 강력한 이름과 같은 자격 증명은 어셈블리 ID를 결정합니다.Credentials such as the origin or the strong name of the assembly determine assembly identity. 또한 유사한 자격 증명을 사용하여 데이터가 애플리케이션 도메인별로 격리될 수도 있습니다.Data can also be isolated by application domain, using similar credentials.

격리된 스토리지를 사용하는 경우, 애플리케이션은 게시자 또는 서명 등과 같은 코드 ID의 몇 가지 측면과 관련된 고유 데이터 구획에 데이터를 저장합니다.When you use isolated storage, your application saves data to a unique data compartment that is associated with some aspect of the code's identity, such as its publisher or signature. 데이터 컴파트먼트는 특정 스토리지 위치가 아니라 추상적인 개념이며 스토리지라고 하는 하나 이상의 격리된 스토리지 파일로 구성됩니다. 이 스토리지는 데이터가 저장되는 실제 디렉터리 위치를 포함합니다.The data compartment is an abstraction, not a specific storage location; it consists of one or more isolated storage files, called stores, which contain the actual directory locations where data is stored. 예를 들어, 애플리케이션은 관련된 데이터 구획을 가질 수 있고 파일 시스템의 디렉터리는 이 애플리케이션의 데이터를 실제로 유지하는 저장소를 구현할 수 있습니다.For example, an application might have a data compartment associated with it, and a directory in the file system would implement the store that actually preserves the data for that application. 저장소에 저장된 데이터는 사용자 기본 설정 정보에서 애플리케이션 상태에 이르기까지 모든 종류의 데이터가 될 수 있습니다.The data saved in the store can be any kind of data, from user preference information to application state. 개발자의 경우, 데이터 구획의 위치는 투명합니다.For the developer, the location of the data compartment is transparent. 저장소는 보통 클라이언트에 있지만, 서버 애플리케이션은 사용자를 대신하여 관련 기능을 수행하면서 그 사용자를 가장하여 정보를 저장하는 격리된 저장소를 사용할 수 있습니다.Stores usually reside on the client, but a server application could use isolated stores to store information by impersonating the user on whose behalf it is functioning. 또한 격리된 스토리지는 로밍 사용자와 함께 정보가 이동되도록 사용자의 로밍 프로필과 함께 서버의 정보를 저장할 수 있습니다.Isolated storage can also store information on a server with a user's roaming profile so that the information will travel with the roaming user.

격리된 스토리지의 할당량Quotas for Isolated Storage

할당 한도는 사용 가능한 격리된 스토리지 크기의 제한 값입니다.A quota is a limit on the amount of isolated storage that can be used. 디렉터리 및 저장소의 다른 정보와 관련된 오버헤드는 물론 파일 공간(바이트)을 포함합니다.The quota includes bytes of file space as well as the overhead associated with the directory and other information in the store. 격리된 스토리지는 IsolatedStoragePermission 개체를 사용하여 설정된 스토리지의 제한에 해당하는 사용 권한 할당을 사용합니다.Isolated storage uses permission quotas, which are storage limits that are set by using IsolatedStoragePermission objects. 할당량을 초과하는 데이터를 쓰려고 하면 IsolatedStorageException 예외가 throw됩니다.If you try to write data that exceeds the quota, an IsolatedStorageException exception is thrown. .NET Framework 구성 도구(Mscorcfg.msc)를 사용하여 수정할 수 있는 보안 정책에 따라 코드에 부여될 권한이 결정됩니다.Security policy, which can be modified using the .NET Framework Configuration Tool (Mscorcfg.msc), determines which permissions are granted to code. IsolatedStoragePermission 권한이 부여된 코드는 UserQuota 속성이 허용하는 수준의 스토리지만 사용하도록 제한됩니다.Code that has been granted IsolatedStoragePermission is restricted to using no more storage than the UserQuota property allows. 그러나 코드에서 다른 사용자 ID를 제공하여 사용 권한 할당 한도를 무시할 수 있으므로 사용 권한 할당 한도는 코드 동작에 대해 고정된 제한이 아니라 코드 동작 방식에 대한 지침으로 사용됩니다.However, because code can bypass permission quotas by presenting different user identities, permission quotas serve as guidelines for how code should behave rather than as a firm limit on code behavior.

로밍 저장소에는 할당 한도가 적용되지 않기 때문에Quotas are not enforced on roaming stores. 코드에 약간 높은 수준의 사용 권한이 있어야 이를 사용할 수 있습니다.Because of this, a slightly higher level of permission is required for code to use them. 열거형 값 AssemblyIsolationByRoamingUserDomainIsolationByRoamingUser는 로밍 사용자를 위한 격리된 스토리지를 사용하여 권한을 지정합니다.The enumeration values AssemblyIsolationByRoamingUser and DomainIsolationByRoamingUser specify a permission to use isolated storage for a roaming user.

액세스 보안Secure Access

격리된 스토리지를 사용하면 부분적으로 신뢰할 수 있는 애플리케이션은 컴퓨터의 보안 정책에 의해 제어되는 방식으로 데이터를 저장할 수 있습니다.Using isolated storage enables partially trusted applications to store data in a manner that is controlled by the computer's security policy. 이 방법은 특히 사용자가 주의하여 실행해야 하는 다운로드된 구성 요소에 유용합니다.This is especially useful for downloaded components that a user might want to run cautiously. 표준 I/O 메커니즘을 사용하여 파일 시스템에 액세스하는 경우, 사용 권한을 이 유형의 코드에 부여하는 경우는 거의 없습니다.Security policy rarely grants this kind of code permission when you access the file system by using standard I/O mechanisms. 그러나 격리된 스토리지를 사용할 권한은 로컬 컴퓨터, 로컬 네트워크 또는 인터넷에서 실행되는 코드에 기본적으로 부여됩니다.However, by default, code running from the local computer, a local network, or the Internet is granted the right to use isolated storage.

관리자는 해당 신뢰 수준에 따라 애플리케이션 또는 사용자가 가질 수 있는 격리된 스토리지 양을 제한할 수 있습니다.Administrators can limit how much isolated storage an application or a user has available, based on an appropriate trust level. 또한 사용자의 지속된 데이터를 모두 제거할 수도 있습니다.In addition, administrators can remove a user's persisted data completely. 격리된 스토리지를 만들거나 액세스하려면 코드에 적절한 IsolatedStorageFilePermission 권한이 부여되어야 합니다.To create or access isolated storage, code must be granted the appropriate IsolatedStorageFilePermission permission.

격리된 스토리지에 액세스하려면 필요한 네이티브 플랫폼 운영 체제 권한이 모두 코드에 있어야 합니다.To access isolated storage, code must have all necessary native platform operating system rights. 파일 시스템을 사용할 수 있는 권한을 가진 사용자를 제어하는 ACL(액세스 제어 목록)이 충족되어야 합니다.The access control lists (ACLs) that control which users have the rights to use the file system must be satisfied. .NET Framework 애플리케이션은 특정 플랫폼 관련 가장을 수행하는 경우를 제외하고는 격리된 스토리지에 액세스할 수 있는 운영 체제 권한을 이미 가지고 있습니다..NET Framework applications already have operating system rights to access isolated storage unless they perform (platform-specific) impersonation. 이런 경우 애플리케이션은 가장된 사용자 ID가 격리된 스토리지에 액세스할 수 있는 적절한 운영 체제 권한을 가지고 있는지 확인해야 합니다.In this case, the application is responsible for ensuring that the impersonated user identity has the proper operating system rights to access isolated storage. 이 액세스 권한은 웹에서 실행되거나 다운로드된 코드에 특정 사용자와 관련된 스토리지 영역에서 읽고 쓸 수 있는 편리한 방법을 제공합니다.This access provides a convenient way for code that is run or downloaded from the web to read and write to a storage area related to a particular user.

격리된 스토리지에 대한 액세스를 제어하기 위해 공용 언어 런타임은 IsolatedStorageFilePermission 개체를 사용합니다.To control access to isolated storage, the common language runtime uses IsolatedStorageFilePermission objects. 각 개체에는 다음과 같은 값을 지정하는 속성이 있습니다.Each object has properties that specify the following values:

  • 허용 수준 - 허용된 액세스 형식을 나타내며Allowed usage, which indicates the type of access that is allowed. 값은 IsolatedStorageContainment 열거형의 멤버입니다.The values are members of the IsolatedStorageContainment enumeration. 이러한 값에 대한 자세한 내용은 다음 섹션의 표를 참조하세요.For more information about these values, see the table in the next section.

  • 이전 섹션에서 설명한 스토리지 할당량입니다.Storage quota, as discussed in the preceding section.

런타임은 코드에서 처음으로 저장소를 열려고 할 때 이 IsolatedStorageFilePermission 권한을 요청합니다.The runtime demands IsolatedStorageFilePermission permission when code first attempts to open a store. 코드의 신뢰 정도에 따라 이 권한을 부여할지 여부를 결정합니다.It decides whether to grant this permission, based on how much the code is trusted. 이 사용 권한이 부여되면 보안 정책 및 코드의 IsolatedStorageFilePermission 요청에 의해 허용되는 사용법과 스토리지 할당량 값이 결정됩니다.If the permission is granted, the allowed usage and storage quota values are determined by security policy and by the code's request for IsolatedStorageFilePermission. 보안 정책은 .NET Framework 구성 도구(Mscorcfg.msc)를 사용하여 설정됩니다.Security policy is set by using the .NET Framework Configuration Tool (Mscorcfg.msc). 호출 스택의 모든 호출자를 검사하여 각 호출자가 적절한 최소 허용 수준 값을 가지고 있는지 확인합니다.All callers in the call stack are checked to ensure that each caller has at least the appropriate allowed usage. 또한 런타임은 파일을 저장할 저장소를 열거나 만든 코드에 부과된 할당 한도도 검사합니다.The runtime also checks the quota imposed on the code that opened or created the store in which the file is to be saved. 이러한 조건을 충족하면 사용 권한이 부여됩니다.If these conditions are satisfied, permission is granted. 할당 한도는 파일을 저장소에 쓸 때마다 다시 검사됩니다.The quota is checked again every time a file is written to the store.

공용 언어 런타임은 보안 정책을 기반으로 적절한 모든 IsolatedStorageFilePermission 을 부여하므로 권한을 요청하는 데 애플리케이션 코드가 필요하지 않습니다.Application code is not required to request permission because the common language runtime will grant whatever IsolatedStorageFilePermission is appropriate based on security policy. 그러나 IsolatedStorageFilePermission을 포함하여 애플리케이션에서 필요로 하는 특정 사용 권한을 요청해야 하는 경우가 있습니다.However, there are good reasons to request specific permissions that your application needs, including IsolatedStorageFilePermission.

허용 수준과 보안 위험Allowed Usage and Security Risks

IsolatedStorageFilePermission에 의해 지정되는 허용 사용법에 따라 코드에서 격리된 스토리지를 만들고 사용할 수 있는 정도가 결정됩니다.The allowed usage specified by IsolatedStorageFilePermission determines the degree to which code will be allowed to create and use isolated storage. 다음 표에서는 사용 권한에 지정된 허용 수준이 어떤 방식으로 격리 유형에 부합하는지를 보여 주고 각 허용 수준과 관련된 보안 위험을 요약하여 설명합니다.The following table shows how the allowed usage specified in the permission corresponds to types of isolation and summarizes the security risks associated with each allowed usage.

허용 수준Allowed usage 격리 유형Isolation types 보안 효과Security impact
None 격리된 스토리지를 사용할 수 없습니다.No isolated storage use is allowed. 보안 효과가 없습니다.There is no security impact.
DomainIsolationByUser 사용자, 도메인 및 어셈블리별 격리.Isolation by user, domain, and assembly. 각 어셈블리는 도메인 내에 별도의 하위 저장소를 가지고 있습니다.Each assembly has a separate substore within the domain. 이 권한을 사용하는 저장소는 암시적으로 컴퓨터와 별로도 격리됩니다.Stores that use this permission are also implicitly isolated by computer. 이 권한을 사용하면 비록 할당 한도가 적용되어 어느 정도까지는 허가되지 않은 수준의 리소스 남용을 방지하지만 그래도 이러한 리소스 남용이 발생할 수 있습니다.This permission level leaves resources open to unauthorized overuse, although enforced quotas make it more difficult. 이를 서비스 거부 공격이라고 합니다.This is called a denial of service attack.
DomainIsolationByRoamingUser DomainIsolationByUser와 동일하지만, 로밍 사용자 프로필을 사용할 수 있고 할당량이 적용되지 않은 경우 로밍되는 위치에 저장소가 저장됩니다.Same as DomainIsolationByUser, but store is saved to a location that will roam if roaming user profiles are enabled and quotas are not enforced. 할당 한도를 사용할 수 없으므로 스토리지 리소스가 서비스 거부 공격에 노출되기 쉽습니다.Because quotas must be disabled, storage resources are more vulnerable to a denial of service attack.
AssemblyIsolationByUser 사용자 및 어셈블리별 격리.Isolation by user and assembly. 이 권한을 사용하는 저장소는 암시적으로 컴퓨터와 별로도 격리됩니다.Stores that use this permission are also implicitly isolated by computer. 서비스 거부 공격 문제를 방지하기 위해 이 수준에서 할당 한도가 적용됩니다.Quotas are enforced at this level to help prevent a denial of service attack. 다른 도메인의 동일한 어셈블리가 이 저장소에 액세스할 수 있으므로 애플리케이션 간에 정보가 누출될 가능성이 있습니다.The same assembly in another domain can access this store, opening the possibility that information could be leaked between applications.
AssemblyIsolationByRoamingUser AssemblyIsolationByUser와 동일하지만, 로밍 사용자 프로필을 사용할 수 있고 할당량이 적용되지 않은 경우 로밍되는 위치에 저장소가 저장됩니다.Same as AssemblyIsolationByUser, but store is saved to a location that will roam if roaming user profiles are enabled and quotas are not enforced. AssemblyIsolationByUser의 경우와 동일하지만, 할당량이 없으므로 서비스 거부 공격 위험이 증가합니다.Same as in AssemblyIsolationByUser, but without quotas, the risk of a denial of service attack increases.
AdministerIsolatedStorageByUser 사용자별 격리.Isolation by user. 일반적으로 관리 또는 디버깅 도구에서 이 권한 수준을 사용합니다.Typically, only administrative or debugging tools use this level of permission. 이 권한으로 액세스하면 코드가 어셈블리 격리와 관계없이 사용자의 격리된 스토리지 파일 또는 디렉터리를 보거나 삭제할 수 있습니다.Access with this permission allows code to view or delete any of a user's isolated storage files or directories (regardless of assembly isolation). 정보 누출 및 데이터 손실 등의 위험이 있지만 이에 제한되지는 않습니다.Risks include, but are not limited to, leaking information and data loss.
UnrestrictedIsolatedStorage 모든 사용자, 도메인 및 어셈블리별 격리.Isolation by all users, domains, and assemblies. 일반적으로 관리 또는 디버깅 도구에서 이 권한 수준을 사용합니다.Typically, only administrative or debugging tools use this level of permission. 이 권한을 사용하면 모든 사용자에 대한 모든 격리된 저장소 전체가 손상될 가능성이 있습니다.This permission creates the potential for a total compromise of all isolated stores for all users.

격리된 스토리지 위치Isolated Storage Locations

때때로 운영 체제의 파일 시스템을 사용하여 격리된 스토리지에 대한 변경 내용을 확인하면 도움이 됩니다.Sometimes it is helpful to verify a change to isolated storage by using the file system of the operating system. 또한 개발자는 격리된 스토리지 파일의 위치를 알고 싶을 때가 있습니다.You might also want to know the location of isolated storage files. 이 위치는 운영 체제에 따라 다릅니다.This location is different depending on the operating system. 다음 표에서는 일반적으로 사용되는 몇 가지 운영 체제에서 격리된 스토리지가 만들어지는 루트 위치를 보여 줍니다.The following table shows the root locations where isolated storage is created on a few common operating systems. 이 루트 위치 아래에 있는 Microsoft\IsolatedStorage 디렉터리를 찾으세요.Look for Microsoft\IsolatedStorage directories under this root location. 파일 시스템에서 격리된 스토리지를 보려면 숨김 파일과 폴더를 표시하도록 폴더 설정을 변경해야 합니다.You must change folder settings to show hidden files and folders in order to see isolated storage in the file system.

운영 체제Operating system 파일 시스템에서의 위치Location in file system
Windows 2000, Windows XP, Windows Server 2003(Windows NT 4.0에서 업그레이드)Windows 2000, Windows XP, Windows Server 2003 (upgrade from Windows NT 4.0) 로밍 가능 저장소 =Roaming-enabled stores =

<SYSTEMROOT>\Profiles\<user>\Application Data<SYSTEMROOT>\Profiles\<user>\Application Data

비로밍 저장소 =Nonroaming stores =

<SYSTEMROOT>\Profiles\<user>\Local Settings\Application Data<SYSTEMROOT>\Profiles\<user>\Local Settings\Application Data
Windows 2000 - 새로 설치 및 Windows 98, Windows NT 3.51에서 업그레이드Windows 2000 - clean installation (and upgrades from Windows 98 and Windows NT 3.51) 로밍 가능 저장소 =Roaming-enabled stores =

<SYSTEMDRIVE>\Documents and Settings\<user>\Application Data<SYSTEMDRIVE>\Documents and Settings\<user>\Application Data

비로밍 저장소 =Nonroaming stores =

<SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data<SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data
Windows XP, Windows Server 2003 - 새로 설치 및 Windows 2000, Windows 98에서 업그레이드Windows XP, Windows Server 2003 - clean installation (and upgrades from Windows 2000 and Windows 98) 로밍 가능 저장소 =Roaming-enabled stores =

<SYSTEMDRIVE>\Documents and Settings\<user>\Application Data<SYSTEMDRIVE>\Documents and Settings\<user>\Application Data

비로밍 저장소 =Nonroaming stores =

<SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data<SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data
Windows 8, Windows 7, Windows Server 2008, Windows VistaWindows 8, Windows 7, Windows Server 2008, Windows Vista 로밍 가능 저장소 =Roaming-enabled stores =

<SYSTEMDRIVE>\Users\<user>\AppData\Roaming<SYSTEMDRIVE>\Users\<user>\AppData\Roaming

비로밍 저장소 =Nonroaming stores =

<SYSTEMDRIVE>\Users\<user>\AppData\Local<SYSTEMDRIVE>\Users\<user>\AppData\Local

격리된 스토리지 만들기, 열거 및 삭제Creating, Enumerating, and Deleting Isolated Storage

.NET Framework에서는 System.IO.IsolatedStorage 네임스페이스의 세 가지 클래스를 제공해 격리된 스토리지와 관련된 작업을 수행할 수 있도록 해줍니다.The .NET Framework provides three classes in the System.IO.IsolatedStorage namespace to help you perform tasks that involve isolated storage:

격리된 스토리지 클래스를 사용하여 격리된 스토리지를 만들고 열거하고 삭제할 수 있습니다.The isolated storage classes enable you to create, enumerate, and delete isolated storage. 이러한 작업을 수행하는 데 필요한 메서드는 IsolatedStorageFile 개체를 통해 사용할 수 있습니다.The methods for performing these tasks are available through the IsolatedStorageFile object. 일부 작업을 수행하려면 격리된 스토리지를 관리할 수 있는 권한을 나타내는 IsolatedStorageFilePermission 권한을 가져야 하며 파일이나 디렉터리에 액세스할 수 있는 운영 체제 권한도 가지고 있어야 합니다.Some operations require you to have the IsolatedStorageFilePermission permission that represents the right to administer isolated storage; you might also need to have operating system rights to access the file or directory.

일반적인 격리된 스토리지 작업을 보여 주는 일련의 예제는 관련 항목에 나열되어 있는 방법 항목을 참조하세요.For a series of examples that demonstrate common isolated storage tasks, see the how-to topics listed in Related Topics.

격리된 스토리지 시나리오Scenarios for Isolated Storage

격리된 스토리지는 다음 네 가지 시나리오를 비롯하여 다양한 상황에서 유용합니다.Isolated storage is useful in many situations, including these four scenarios:

  • 다운로드된 컨트롤.Downloaded controls. 인터넷에서 다운로드된 관리 코드 컨트롤은 일반 I/O 클래스를 통해 하드 드라이브에 쓸 수 없지만 격리된 스토리지를 사용하여 사용자 설정 및 애플리케이션 상태를 유지할 수 있습니다.Managed code controls downloaded from the Internet are not allowed to write to the hard drive through normal I/O classes, but they can use isolated storage to persist users' settings and application states.

  • 공유 구성 요소 스토리지.Shared component storage. 애플리케이션 간에 공유되는 구성 요소는 격리된 스토리지를 사용하여 데이터 스토리지에 대한 제어된 액세스를 제공할 수 있습니다.Components that are shared between applications can use isolated storage to provide controlled access to data stores.

  • 서버 스토리지.Server storage. 서버 애플리케이션은 격리된 스토리지를 사용하여 애플리케이션을 요청하는 다수의 사용자에게 개별 스토리지를 제공할 수 있습니다.Server applications can use isolated storage to provide individual stores for a large number of users making requests to the application. 격리된 스토리지는 항상 사용자별로 분리되어 있으므로 서버는 요청하는 사용자를 가장해야 합니다.Because isolated storage is always segregated by user, the server must impersonate the user making the request. 이런 경우 데이터는 사용자를 구분하기 위해 애플리케이션에서 사용하는 동일한 ID인 보안 주체 ID를 기반으로 격리됩니다.In this case, data is isolated based on the identity of the principal, which is the same identity the application uses to distinguish between its users.

  • 로밍.Roaming. 또한 애플리케이션에서는 격리된 스토리지를 사용하여 로밍 사용자 프로필을 저장할 수 있습니다.Applications can also use isolated storage with roaming user profiles. 따라서 사용자의 격리된 저장소는 프로필을 로밍하는 데 사용됩니다.This allows a user's isolated stores to roam with the profile.

다음과 같은 경우 격리된 스토리지를 사용하면 안 됩니다.You should not use isolated storage in the following situations:

  • 격리된 스토리지는 충분히 신뢰할 수 있는 코드, 비관리 코드 또는 컴퓨터에서 신뢰할 수 있는 사용자로부터 보호되지 않으므로 암호화되지 않은 키 또는 암호 등의 상위 값 비밀을 저장하는 데 사용하지 마세요.To store high-value secrets, such as unencrypted keys or passwords, because isolated storage is not protected from highly trusted code, from unmanaged code, or from trusted users of the computer.

  • 코드를 저장하는 데 사용하지 마세요.To store code.

  • 관리자가 컨트롤하는 구성 및 배포 설정을 저장하는 데 사용하지 마세요.To store configuration and deployment settings, which administrators control. 사용자 기본 설정은 관리자가 제어하지 않으므로 구성 설정으로 간주되지 않습니다.(User preferences are not considered to be configuration settings because administrators do not control them.)

대부분의 애플리케이션은 데이터베이스를 사용하여 데이터를 저장하고 격리합니다. 이때 데이터베이스에 있는 하나 이상의 행은 특정 사용자에 대한 스토리지를 나타낼 수 있습니다.Many applications use a database to store and isolate data, in which case one or more rows in a database might represent storage for a specific user. 사용자 수가 적은 경우, 데이터베이스 사용에 따른 오버헤드가 의미가 있는 경우 또는 데이터베이스 기능이 없는 경우 데이터베이스 대신 격리된 스토리지를 사용하도록 선택할 수 있습니다.You might choose to use isolated storage instead of a database when the number of users is small, when the overhead of using a database is significant, or when no database facility exists. 또한 데이터베이스에서 제공하는 행보다 더 융통성 있고 복잡한 스토리지가 애플리케이션에 필요한 경우에도 격리된 스토리지를 사용할 수 있습니다.Also, when the application requires storage that is more flexible and complex than what a row in a database provides, isolated storage can provide a viable alternative.

제목Title 설명Description
격리 유형Types of Isolation 다양한 유형의 격리에 대해 설명합니다.Describes the different types of isolation.
방법: 격리된 스토리지의 저장소 가져오기How to: Obtain Stores for Isolated Storage IsolatedStorageFile 클래스를 사용하여 사용자 및 어셈블리별로 격리된 저장소를 가져오는 예제를 제공합니다.Provides an example of using the IsolatedStorageFile class to obtain a store isolated by user and assembly.
방법: 격리된 스토리지의 저장소 열거How to: Enumerate Stores for Isolated Storage IsolatedStorageFile.GetEnumerator 메서드를 사용하여 사용자에 대한 모든 격리된 스토리지 크기를 계산하는 방법을 보여 줍니다.Shows how to use the IsolatedStorageFile.GetEnumerator method to calculate the size of all isolated storage for the user.
방법: 격리된 스토리지에서 저장소 삭제How to: Delete Stores in Isolated Storage IsolatedStorageFile.Remove 메서드를 두 가지 방법으로 사용하여 격리된 저장소를 삭제하는 방법을 보여 줍니다.Shows how to use the IsolatedStorageFile.Remove method in two different ways to delete isolated stores.
방법: 격리된 스토리지의 공간 부족 상태 예상How to: Anticipate Out-of-Space Conditions with Isolated Storage 격리된 저장소에서 남은 공간을 측정하는 방법을 보여 줍니다.Shows how to measure the remaining space in an isolated store.
방법: 격리된 스토리지의 파일 및 디렉터리 만들기How to: Create Files and Directories in Isolated Storage 격리된 저장소에서 파일 및 디렉터리를 만드는 몇 가지 예제를 제공합니다.Provides some examples of creating files and directories in an isolated store.
방법: 격리된 스토리지의 기존 파일 및 디렉터리 찾기How to: Find Existing Files and Directories in Isolated Storage 격리된 스토리지에서 디렉터리 구조 및 파일을 읽는 방법을 보여 줍니다.Demonstrates how to read the directory structure and files in isolated storage.
방법: 격리된 스토리지의 파일 읽기 및 쓰기How to: Read and Write to Files in Isolated Storage 격리된 스토리지 파일에 문자열을 쓰고 다시 문자열을 읽는 예제를 제공합니다.Provides an example of writing a string to an isolated storage file and reading it back.
방법: 격리된 스토리지의 파일 및 디렉터리 삭제How to: Delete Files and Directories in Isolated Storage 격리된 스토리지 파일 및 디렉터리를 삭제하는 방법을 보여 줍니다.Demonstrates how to delete isolated storage files and directories.
파일 및 스트림 I/OFile and Stream I/O 동기 및 비동기 파일과 데이터 스트림 액세스를 수행할 수 있는 방법에 대해 설명합니다.Explains how you can perform synchronous and asynchronous file and data stream access.

참고Reference