目次
文書の過去の版を表示しています。
IsolatedStorageFile クラス (System.IO.IsolatedStorage)
.NET Frameworkには、アプリケーションの信頼性を向上させる仕組みとして、分離ストレージ(Isolated Storage)という機能が存在する。
この機能を利用してアプリケーションの重要なデータを保存しておくと、データが不用意に書き換えられたり、破壊してしまうようなトラブルの発生の可能性を最小にすることができる。
using System; using System.IO; using System.IO.IsolatedStorage; class Program { static void Main() { // 分離ストレージを取得(アセンブリ単位のスコープ) IsolatedStorageFile isolatedStorageFile = IsolatedStorageFile.GetMachineStoreForAssembly(); // 分離ストレージファイルのストリームを開く(読み込み用) using (IsolatedStorageFileStream outputStream = new IsolatedStorageFileStream("TextFile.txt", FileMode.Create, FileAccess.Write, isolatedStorageFile)) // ストリーム経由でデータを書き込む using (StreamWriter writer = new StreamWriter(outputStream)) { writer.WriteLine("データ書き込み"); } // 分離ストレージファイルのストリームを開く(書き込み用) using (IsolatedStorageFileStream inputStream = new IsolatedStorageFileStream("TextFile.txt", FileMode.Open, FileAccess.Read, isolatedStorageFile)) // ストリーム経由でデータを書き込む using (StreamReader reader = new StreamReader(inputStream)) { Console.WriteLine(reader.ReadToEnd()); } } }
分離ストレージ ツール(storeadm.exe)
分離ストレージ ツールを利用すると、現在マシンに存在する ユーザーストアおよびマシンストアの一覧を表示したり削除することができる。
ユーザーストアの一覧表示
> storeadm /list C:\>storeadm /list Microsoft (R) .NET Framework Store Admin 3.5.21022.8 Copyright (c) Microsoft Corporation. All rights reserved. Record #1 [Assembly] <System.Security.Policy.Publisher version="1"> <X509v3Certificate>4563987... </X509v3Certificate> </System.Security.Policy.Publisher> Size : 1024 Record #2 [Application] <StrongName version="1" Key="0000000000000000" Name="HogeHoge.application" Version="9.0.0.5380"/> Size : 1024
マシンストアの一覧表示
> C:\>storeadm /list /machine Microsoft (R) .NET Framework Store Admin 3.5.21022.8 Copyright (c) Microsoft Corporation. All rights reserved. Record #1 [Application] <StrongName version="1" Key="0000000000000000" Name="See.application" Version="1.0.0.7220"/> Size : 1024
分離ストレージの取得でInvalidOperationException例外が発生する場合
Windowsのセキュリティ設定で、「システム暗号化: 暗号化、ハッシュ、署名のための FIPS 準拠アルゴリズムを使う」を有効に設定している場合、分離ストレージの取得で InvalidOperationException例外が発生する。例外メッセージは、「この実装は Windows プラットフォーム FIPS 検証暗号化アルゴリズムの一部ではありません。」というもの。
これは、分離ストレージが内部的に利用しているSHA1Managedクラスが、FIPS(連邦情報処理標準)アルゴリズムに準拠していないためである。つまり、これはSHA1Managedクラスの仕様であり、SHA1Managedクラスも使用できなくなる。
この問題を回避するには、Windowsのセキュリティ設定で「システム暗号化: 暗号化、ハッシュ、署名のための FIPS 準拠アルゴリズムを使う」の設定を無効にする必要がある。
そのためには、以下の手順を実施する。
- [スタート]メニューの[ファイル名を指定して実行]をクリックする。
参考文献
分離ストレージを活用するには?[C#、VB] - @IT - @IT
The application may crash, Visual Studio may crash, or you may receive an error message when you develop or run a Windows Workflow Foundation-based application on a computer that has FIPS-compliant algorithms enabled - microsoft.com
Sandcastle problem with FIPS enabled - microsoft.com - Developer Documentation and Help System