MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menambahkan keamanan deklaratif ke metode ini.
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)
Parameter
- action
- SecurityAction
Tindakan keamanan yang akan diambil (Permintaan, Pernyataan, dan sebagainya).
- pset
- PermissionSet
Kumpulan izin yang berlaku untuk tindakan.
Pengecualian
tidak action
valid (RequestMinimum
, RequestOptional
, dan RequestRefuse
tidak valid).
Jenis yang berisi telah dibuat menggunakan CreateType().
-atau-
Kumpulan pset
izin berisi tindakan yang ditambahkan sebelumnya oleh AddDeclarativeSecurity(SecurityAction, PermissionSet).
-atau-
Untuk metode saat ini, IsGenericMethod properti adalah true
, tetapi IsGenericMethodDefinition propertinya adalah false
.
pset
adalah null
.
Contoh
Sampel kode di bawah ini menggambarkan penggunaan AddDeclarativeSecurity
kontekstual untuk mengharuskan pemanggil metode memiliki izin yang tidak dibatasi.
// 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.
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)
Keterangan
AddDeclarativeSecurity dapat dipanggil beberapa kali, dengan setiap panggilan yang menentukan tindakan keamanan (seperti Demand
, , Assert
dan Deny
) dan sekumpulan izin yang diterapkan tindakan.
Catatan
Dalam versi .NET Framework 1.0, 1.1, dan 2.0, atribut keamanan deklaratif diterapkan ke metode dengan menggunakan AddDeclarativeSecurity metode disimpan dalam format metadata XML lama. Lihat Memancarkan Atribut Keamanan Deklaratif.