SecureString クラス
アセンブリ: mscorlib (mscorlib.dll 内)

Public NotInheritable Class SecureString Inherits CriticalFinalizerObject Implements IDisposable
public sealed class SecureString : CriticalFinalizerObject, IDisposable
public final class SecureString extends CriticalFinalizerObject implements IDisposable
public final class SecureString extends CriticalFinalizerObject implements IDisposable

System.String クラスのインスタンスは変更不可であると同時に、不要になるとプログラムでガベージ コレクションの対象としてスケジュールできなくなります。つまり、このインスタンスは作成後は読み取り専用であり、いつコンピュータのメモリから削除されるのか予測できません。String オブジェクトにパスワードやクレジット カード番号、個人データなどの機密情報が含まれている場合、データをアプリケーションによってコンピュータのメモリから削除できないため、機密情報の使用後に情報が盗まれる危険性があります。
SecureString オブジェクトは、テキスト値を格納するという点で String オブジェクトと似ています。ただし、SecureString オブジェクトの値は自動的に暗号化されます。アプリケーションで読み取り専用としてマークするまでは変更でき、アプリケーションや .NET Framework ガベージ コレクタによってコンピュータのメモリから削除できます。
SecureString のインスタンスの値は、インスタンスが初期化されるか値が変更されたときに、自動的に暗号化されます。アプリケーションで MakeReadOnly メソッドを実行することで、インスタンスを変更不可にし、それ以上の変更を防ぐことができます。
SecureString には、SecureString の値を検査、比較、または変換するためのメンバがありません。このようなメンバがないため、インスタンスの値が誤って、または意図的に公開されることを未然に防ぐことができます。SecureString オブジェクトの値を操作するには、SecureStringToBSTR メソッドなど、System.Runtime.InteropServices.Marshal クラスの適切なメンバを使用します。
SecureString クラスは CriticalFinalizerObject クラスから派生したもので、IDisposable インターフェイスを実装しています。IDisposable インターフェイスの実装方法の詳細については、「ガベージ コレクション」を参照してください。
SecureString クラスとそのメンバは、COM からは参照できません。詳細については、「ComVisibleAttribute」を参照してください。
Windows 2000 プラットフォームメモ : SecureString は、Windows 2000 Service Pack 3 以降でだけサポートされています。

System.Runtime.ConstrainedExecution.CriticalFinalizerObject
System.Security.SecureString


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SecureString メンバ
System.Security 名前空間
ComVisibleAttribute クラス
Marshal クラス
CriticalFinalizerObject クラス
IDisposable
- SecureString クラスのページへのリンク