MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bu yönteme bildirim temelli güvenlik ekler.
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)
Parametreler
- action
- SecurityAction
Gerçekleştirilecek güvenlik eylemi (Talep, Onay vb.).
- pset
- PermissionSet
Eylemin uygulandığı izin kümesi.
Özel durumlar
action
geçersiz (RequestMinimum
, RequestOptional
ve RequestRefuse
geçersiz).
İçeren tür kullanılarak CreateType()oluşturulmuştur.
-veya-
İzin kümesi pset
, tarafından AddDeclarativeSecurity(SecurityAction, PermissionSet)daha önce eklenmiş bir eylem içerir.
-veya-
Geçerli yöntem IsGenericMethod için özelliği şeklindedir true
, ancak IsGenericMethodDefinition özelliği şeklindedir false
.
pset
, null
değeridir.
Örnekler
Aşağıdaki kod örneği, bir yöntemi çağıranın kısıtlanmamış izinlere sahip olmasını gerektirmek için bağlamsal kullanımını AddDeclarativeSecurity
gösterir.
// 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)
Açıklamalar
AddDeclarativeSecuritybirkaç kez çağrılabilir ve her çağrı bir güvenlik eylemi (, ve gibiDemand
Assert
) ve Deny
eylemin geçerli olduğu bir izin kümesi belirtir.
Not
.NET Framework 1.0, 1.1 ve 2.0 sürümlerinde, yöntemi kullanılarak AddDeclarativeSecurity bir yönteme uygulanan bildirim temelli güvenlik öznitelikleri eski XML meta veri biçiminde depolanır. Bkz. Bildirim temelli Güvenlik Özniteliklerini Yayma.