セキュリティが有効かどうかを示す値を取得または設定します。
Public Shared Property SecurityEnabled As Boolean
[C#]
public static bool SecurityEnabled {get; set;}
[C++]
public: __property static bool get_SecurityEnabled();public: __property static void set_SecurityEnabled(bool);
[JScript]
public static function get SecurityEnabled() : Boolean;public static function set SecurityEnabled(Boolean);
プロパティ値
セキュリティが有効な場合は true 。それ以外の場合は false 。
例外
例外の種類 | 条件 |
---|---|
SecurityException | このメソッドを呼び出すコードに SecurityPermissionFlag.ControlPolicy がありません。 |
解説
このプロパティを コード アクセス セキュリティ ポリシー ツール (Caspol.exe) -security (-s) オプションで使用して、コード ベース セキュリティをオフにすることができます。
SecurityEnabled を使用すると、管理者はコード アクセス セキュリティを無効にすることができます。コード アクセス セキュリティが無効な場合、すべてのコード アクセス要求は成功します。実質的にこのプロパティは、すべてのコードに FullTrust を与えます。コード アクセス セキュリティを無効にすると、セキュリティ システムがバイパスされます。そのため、すべてのコードに FullTrust を与える同等のセキュリティ ポリシーよりも、コードのパフォーマンスが多少向上することがあります。このプロパティを使用しても、ロール ベースのセキュリティが無効になることはありません。したがって、 PrincipalPermission 要求は影響を受けません。
注意 コード アクセス セキュリティを無効にすると、システムはウイルスやワームなどの悪意あるコードによる攻撃を受けやすくなります。コード アクセス セキュリティを無効にしても、マネージ コードの実行が自動的にブロックされることは一切ありません。コード アクセス セキュリティ システムによる制限がない状態でマネージ コードが実行できるようになるだけです。これを使用するときは、細心の注意を払ってください。セキュリティをオフにすると確かにパフォーマンスは向上しますが、このセキュリティをオフにするのは、別のセキュリティ対策によってシステムのセキュリティが確保されている場合だけにしてください。その他のセキュリティ対策の例として、パブリック ネットワークからの切断や、物理的なコンピュータの保護などがあります。
このプロパティの変更は、 SavePolicy を呼び出すまでレジストリで永続化されません。新しいプロセスは、レジストリで永続化されるまで、変更の影響を受けません。実行中のプロセスでこのプロパティの値を変更しても、必ずしも予想どおりに状態は変更されません。変更を確実に有効にするには、 SavePolicy を呼び出して新しいプロセスを開始する必要があります。
使用例
[Visual Basic, C#, C++] セキュリティが有効になっていることを確認する例を次に示します。
If Not SecurityManager.SecurityEnabled Then
Throw New SecurityException(myResourceManager.GetString("Security_Required"))
End If
. . .
If Not SecurityManager.SecurityEnabled Then
Throw New SecurityException(myResourceManager.GetString("Security_Required"))
End If
[C#]
if ( !SecurityManager.SecurityEnabled ) {
throw new SecurityException(myResourceManager.GetString("Security_Required"));
}
[C++]
if ( !SecurityManager::SecurityEnabled ) {
throw new SecurityException(myResourceManager->GetString(S"Security_Required"));
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- SecurityPermission (ポリシーを変更するために必要な許可)。 SecurityPermissionFlag.ControlPolicy (関連する列挙体)
参照
SecurityManager クラス | SecurityManager メンバ | System.Security 名前空間