讀操作也是完全和其它使用文件I/O相似的:
IsolatedStorageFile isoStore =
IsolatedStorageFile.GetUserStoreForDomain( );
string[] files = isoStore.GetFileNames( "SavedStuff.txt" );
if ( files.Length > 0 )
{
StreamReader reader = new StreamReader( new
IsolatedStorageFileStream( "SavedStuff.txt",
FileMode.Open,isoStore ) );
// Several reader.ReadLines( ) calls elided.
reader.Close ();
}
你可以獨立存儲來持久大小合適的數據元素,這些元 素可以被代碼部分信任,用於從一個安全分離的本地磁盤上的某個地方存儲和載 入信息。.Net環境為每個程序定義和限制了獨立存儲的大小。這可以預防一些惡 意的代碼占用磁盤空間,讓系統就得不可用。獨立存儲對於其它程序和其它用戶 來說是不可見的。也就是說,它不應用於要管理員手動操作才能布署或者配置設 置的情況。即使這它是隱藏的,然而,獨立存儲對於從受信任的用戶那來裡來的 非托管代碼來說也是不受保護的。不要用獨立存儲來存儲一些高度機密的內容, 除非你的程序給它加過密。
在文件系統中創建一個可能要許可安全策略 的程序集時,要獨立存儲流的內容。當你的程序集可能在web上運行,或者可能 被運行在web上的代碼訪問時,應該考慮使用獨立存儲。
你可能須要正確 的使用一個受保護的資源。一般情況下,訪問這些資源要指出你的程序要被完全 信任。唯一可選的就是完全避免使用這些受保護的資源。例如,考慮Windows的 注冊表,如果你和程序須要訪問注冊表,你必須安裝你的程序到最終用戶的機器 上,這樣才能有必須的權限來訪問注冊表。你想簡單點,從web上運行的程序是 不能建立注冊表的修改的。安全策略就應該是這樣的。
.Net的安全模型 意味著你的程序的行為是要權得進行核對的。注意你的程序所要求的權利,而且 試著最小化它們。不必要求你不使用的權利。你的程序集越是少的要求受保護資 源,那麼它們就越是可以保證安全策略異常不拋出。避免使用機密資源,如果可 能,要考慮其它可選方案。當你在某個算法上確實須要更高安全的許可時,應該 獨立這些代碼到它們自己的程序集中。
返回教程目錄