SecurityPermissionFlag 列挙体
セキュリティ アクセス許可オブジェクトのアクセス フラグを指定します。
この列挙体には、メンバ値をビットごとに演算するための FlagsAttribute 属性が含まれています。
<Flags>
<Serializable>
Public Enum SecurityPermissionFlag
[C#]
[Flags]
[Serializable]
public enum SecurityPermissionFlag
[C++]
[Flags]
[Serializable]
__value public enum SecurityPermissionFlag
[JScript]
public
Flags
Serializable
enum SecurityPermissionFlag
解説
この列挙体は、 SecurityPermission で使用されます。
注意 これらのフラグの多くは強力なため、信頼性の高いコードだけに付与するようにしてください。
メンバ
メンバ名 | 説明 | 値 |
---|---|---|
AllFlags | アクセス許可の無制限状態。 | 16383 |
Assertion | このコードのすべての呼び出し元に、操作のために必要なアクセス許可があることをアサート する機能。 | 1 |
BindingRedirects | アプリケーション構成ファイルで明示的にバインディング リダイレクトを実行するためのアクセス許可。これには、統合された .NET Framework アセンブリのリダイレクトだけでなく、.NET Framework の外で見つかったアセンブリのリダイレクトも含まれます。 | 8192 |
ControlAppDomain | AppDomain を作成し、操作する機能。 | 1024 |
ControlDomainPolicy | ドメイン ポリシーを指定する機能。 | 256 |
ControlEvidence | 証拠を提供する機能。これには、共通言語ランタイムが提供する証拠を変更する機能が含まれます。
これは強力なアクセス許可であるため、信頼性の高いコードだけに付与するようにしてください。 |
32 |
ControlPolicy | ポリシーを表示および変更する機能。
これは強力なアクセス許可であるため、信頼性の高いコードだけに付与するようにしてください。 |
64 |
ControlPrincipal | プリンシパル オブジェクトを操作する機能。 | 512 |
ControlThread | スレッドで特定の高度な操作を使用する機能。 | 16 |
Execution | コードを実行するためのアクセス許可。このアクセス許可がない場合、マネージ コードは実行されません。
このフラグは、 Deny 、 Assert 、 PermitOnly などのスタック修飾子で動的に使用する場合は無効です。 |
8 |
Infrastructure | リモート処理コンテキスト シンク、エンボイ シンク、動的シンクの追加など、共通言語ランタイム インフラストラクチャへコードを組み込むためのアクセス許可。 | 4096 |
NoFlags | セキュリティ アクセスがありません。 | 0 |
RemotingConfiguration | リモート処理の型とチャネルを設定するためのアクセス許可。 | 2048 |
SerializationFormatter | シリアル化サービスを提供する機能。シリアル化フォーマッタで使用します。 | 128 |
SkipVerification | このアセンブリでコードの検査をスキップする機能。このアクセス許可が付与されている場合は、検査できないコードを実行できます。
これは強力なアクセス許可であるため、信頼性の高いコードだけに付与するようにしてください。 このフラグは、 Deny 、 Assert 、 PermitOnly などのスタック修飾子で動的に使用する場合は無効です。 |
4 |
UnmanagedCode | アンマネージ コードを呼び出す機能。
アンマネージ コードは、他のアクセス許可をバイパスすることを許す可能性があるため、これは信頼性の高いコードだけに与えるようにする必要がある危険なアクセス許可です。これは PInvoke または COM 相互運用機能を使用してネイティブ コードを呼び出すようなアプリケーションで使用します。 |
2 |
使用例
' This class generates SecurityPermission objects using SecurityPermissionFlag enumeration values.
Imports System
Imports System.Security
Imports System.Security.Permissions
Imports Microsoft.VisualBasic
Public Class SecurityGenerator
Private mySecurity As SecurityPermissionFlag() = {SecurityPermissionFlag.AllFlags, _
SecurityPermissionFlag.Assertion, SecurityPermissionFlag.ControlAppDomain, _
SecurityPermissionFlag.ControlDomainPolicy, SecurityPermissionFlag.ControlEvidence, _
SecurityPermissionFlag.ControlPolicy, SecurityPermissionFlag.ControlPrincipal, _
SecurityPermissionFlag.ControlThread, SecurityPermissionFlag.Execution, _
SecurityPermissionFlag.Infrastructure, SecurityPermissionFlag.NoFlags, _
SecurityPermissionFlag.RemotingConfiguration, _
SecurityPermissionFlag.SerializationFormatter, _
SecurityPermissionFlag.SkipVerification, _
SecurityPermissionFlag.UnmanagedCode}
Private reflectionIndex As Integer = 0
Public Sub New()
ResetIndex()
End Sub 'New
Public Sub ResetIndex()
reflectionIndex = 0
End Sub 'ResetIndex
' CreateSecurity creates a SecurityPermission object.
Public Function CreateSecurity(ByRef SecurityPerm As SecurityPermission, _
ByRef Security As SecurityPermissionFlag) As Boolean
If reflectionIndex >= mySecurity.Length Then
SecurityPerm = New SecurityPermission(PermissionState.None)
Security = SecurityPermissionFlag.NoFlags
reflectionIndex &= 1
Return False
End If
Security = mySecurity(reflectionIndex)
reflectionIndex = reflectionIndex + 1
Try
SecurityPerm = New SecurityPermission(Security)
Return True
Catch e As Exception
Console.WriteLine(("Cannot create SecurityPermission: " & Security & " " & e.ToString()))
SecurityPerm = New SecurityPermission(PermissionState.None)
Security = SecurityPermissionFlag.NoFlags
Return True
End Try
End Function 'CreateSecurity
End Class 'SecurityGenerator
' End of SecurityGenerator.
[C#]
// This class generates SecurityPermission objects using SecurityPermissionFlag enumeration values.
using System;
using System.Security;
using System.Security.Permissions;
public class SecurityGenerator
{
private SecurityPermissionFlag[] mySecurity =
{
SecurityPermissionFlag.AllFlags,
SecurityPermissionFlag.Assertion,
SecurityPermissionFlag.ControlAppDomain,
SecurityPermissionFlag.ControlDomainPolicy,
SecurityPermissionFlag.ControlEvidence,
SecurityPermissionFlag.ControlPolicy,
SecurityPermissionFlag.ControlPrincipal,
SecurityPermissionFlag.ControlThread,
SecurityPermissionFlag.Execution,
SecurityPermissionFlag.Infrastructure,
SecurityPermissionFlag.NoFlags,
SecurityPermissionFlag.RemotingConfiguration,
SecurityPermissionFlag.SerializationFormatter,
SecurityPermissionFlag.SkipVerification,
SecurityPermissionFlag.UnmanagedCode};
private int reflectionIndex = 0;
public SecurityGenerator()
{
ResetIndex();
}
public void ResetIndex()
{
reflectionIndex = 0;
}
// CreateSecurity creates a SecurityPermission object.
public bool CreateSecurity(out SecurityPermission SecurityPerm, out SecurityPermissionFlag Security)
{
if(reflectionIndex >= mySecurity.Length)
{
SecurityPerm = new SecurityPermission(PermissionState.None);
Security=SecurityPermissionFlag.NoFlags;
reflectionIndex++;
return false;
}
Security = mySecurity[reflectionIndex++];
try
{
SecurityPerm = new SecurityPermission(Security);
return true;
}
catch(Exception e)
{
Console.WriteLine("Cannot create SecurityPermission: " + Security +" "+e);
SecurityPerm = new SecurityPermission(PermissionState.None);
Security=SecurityPermissionFlag.NoFlags;
return true;
}
}
} // End of SecurityGenerator.
[C++]
// This class generates SecurityPermission objects using SecurityPermissionFlag enumeration values.
#using <mscorlib.dll>
using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::Runtime::InteropServices;
public __gc class SecurityGenerator {
private:
SecurityPermissionFlag mySecurity[];
int reflectionIndex;
public:
SecurityGenerator() {
SecurityPermissionFlag temp[] = {
SecurityPermissionFlag::AllFlags,
SecurityPermissionFlag::Assertion,
SecurityPermissionFlag::ControlAppDomain,
SecurityPermissionFlag::ControlDomainPolicy,
SecurityPermissionFlag::ControlEvidence,
SecurityPermissionFlag::ControlPolicy,
SecurityPermissionFlag::ControlPrincipal,
SecurityPermissionFlag::ControlThread,
SecurityPermissionFlag::Execution,
SecurityPermissionFlag::Infrastructure,
SecurityPermissionFlag::NoFlags,
SecurityPermissionFlag::RemotingConfiguration,
SecurityPermissionFlag::SerializationFormatter,
SecurityPermissionFlag::SkipVerification,
SecurityPermissionFlag::UnmanagedCode};
mySecurity = temp;
ResetIndex();
}
public:
void ResetIndex() {
reflectionIndex = 0;
}
// CreateSecurity creates a SecurityPermission Object*.
public:
bool CreateSecurity([Out] SecurityPermission** SecurityPerm, [Out] SecurityPermissionFlag* Security) {
if (reflectionIndex >= mySecurity->Length) {
*SecurityPerm = new SecurityPermission(PermissionState::None);
*Security=SecurityPermissionFlag::NoFlags;
reflectionIndex++;
return false;
}
*Security = mySecurity[reflectionIndex++];
try {
*SecurityPerm = new SecurityPermission(*Security);
return true;
} catch (Exception* e) {
Console::WriteLine(S"Cannot create SecurityPermission: {0}{1}", __box(*Security), e);
*SecurityPerm = new SecurityPermission(PermissionState::None);
*Security=SecurityPermissionFlag::NoFlags;
return true;
}
}
}; // End of SecurityGenerator.
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Security.Permissions
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: Mscorlib (Mscorlib.dll 内)
参照
System.Security.Permissions 名前空間 | SecurityPermission | SecurityPermissionAttribute