MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このメソッドに宣言セキュリティを追加します。
public:
void AddDeclarativeSecurity(System::Security::Permissions::SecurityAction action, System::Security::PermissionSet ^ pset);
public void AddDeclarativeSecurity (System.Security.Permissions.SecurityAction action, System.Security.PermissionSet pset);
member this.AddDeclarativeSecurity : System.Security.Permissions.SecurityAction * System.Security.PermissionSet -> unit
Public Sub AddDeclarativeSecurity (action As SecurityAction, pset As PermissionSet)
パラメーター
- action
- SecurityAction
(Demand、Assert などの) 実行されるセキュリティ アクション。
- pset
- PermissionSet
アクションが適用されるアクセス許可のセット。
例外
action が正しくありません (RequestMinimum、RequestOptional、RequestRefuse が正しくない)。
含んでいる型は CreateType() を使用して作成されています。
または - アクセス許可のセット
psetに、AddDeclarativeSecurity(SecurityAction, PermissionSet) によって以前に追加されたアクションが含まれています。または - 現在のメソッドでは、IsGenericMethod プロパティは
trueですが、IsGenericMethodDefinition プロパティはfalseです。
pset が nullです。
例
次のコード サンプルは、 のコンテキストを使用して、メソッドの呼び出し元に無制限のアクセス許可を要求 AddDeclarativeSecurity する方法を示しています。
// myModBuilder is an instance of ModuleBuilder.
// Note that for the use of PermissionSet and SecurityAction,
// the namespaces System::Security and System::Security::Permissions
// should be included.
TypeBuilder^ myTypeBuilder = myModBuilder->DefineType( "MyType",
TypeAttributes::Public );
array<Type^>^ temp0 = {int::typeid, int::typeid};
MethodBuilder^ myMethod1 = myTypeBuilder->DefineMethod( "MyMethod",
MethodAttributes::Public,
int::typeid, temp0 );
PermissionSet^ myMethodPermissions = gcnew PermissionSet(
PermissionState::Unrestricted );
myMethod1->AddDeclarativeSecurity( SecurityAction::Demand,
myMethodPermissions );
// myModBuilder is an instance of ModuleBuilder.
// Note that for the use of PermissionSet and SecurityAction,
// the namespaces System.Security and System.Security.Permissions
// should be included.
TypeBuilder myTypeBuilder = myModBuilder.DefineType("MyType",
TypeAttributes.Public);
MethodBuilder myMethod1 = myTypeBuilder.DefineMethod("MyMethod",
MethodAttributes.Public,
typeof(int),
new Type[]
{typeof(int), typeof(int)});
PermissionSet myMethodPermissions = new PermissionSet(
PermissionState.Unrestricted);
myMethod1.AddDeclarativeSecurity(SecurityAction.Demand,
myMethodPermissions);
' myModBuilder is an instance of ModuleBuilder.
' Note that for the use of PermissionSet and SecurityAction,
' the namespaces System.Security and System.Security.Permissions
' should be included.
Dim myTypeBuilder As TypeBuilder = myModBuilder.DefineType("MyType", _
TypeAttributes.Public)
Dim myMethod1 As MethodBuilder = myTypeBuilder.DefineMethod("MyMethod", _
MethodAttributes.Public, _
GetType(Integer), _
New Type() {GetType(Integer), GetType(Integer)})
Dim myMethodPermissions As New PermissionSet(PermissionState.Unrestricted)
myMethod1.AddDeclarativeSecurity(SecurityAction.Demand, myMethodPermissions)
注釈
AddDeclarativeSecurity は数回呼び出され、各呼び出しでセキュリティ アクション (、 など) と、アクションが適用される一連のアクセス許可 Demand Assert Deny を指定できます。
注意
.NET Framework バージョン 1.0、1.1、および 2.0 では、 メソッドを使用してメソッドに適用される宣言セキュリティ属性は、古い XML メタデータ形式で格納されます AddDeclarativeSecurity 。 「宣言型セキュリティ属性の出力」を参照してください。