MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt dieser Methode deklarative Sicherheit hinzu.
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
Die auszuführende Sicherheitsaktion (Demand, Assert usw.).
- pset
- PermissionSet
Der Berechtigungssatz, für den die Aktion gilt.
Ausnahmen
Die action
ist ungültig (RequestMinimum
, RequestOptional
, und RequestRefuse
sind ungültig).
Der enthaltende Typ wurde mithilfe von CreateType() erstellt.
- oder -
Der Berechtigungssatz pset
enthält eine Aktion, die zuvor von AddDeclarativeSecurity(SecurityAction, PermissionSet) hinzugefügt wurde.
- oder -
Für die aktuelle Methode ist die IsGenericMethod-Eigenschaft true
, aber die IsGenericMethodDefinition-Eigenschaft ist false
.
pset
ist null
.
Beispiele
Im folgenden Codebeispiel wird die kontextbezogene Verwendung von AddDeclarativeSecurity
veranschaulicht, damit der Aufrufer einer Methode über uneingeschränkte Berechtigungen verfügt.
// 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)
Hinweise
AddDeclarativeSecurity kann mehrmals aufgerufen werden, wobei jeder Aufruf eine Sicherheitsaktion (z Demand
. B. , Assert
und Deny
) und einen Satz von Berechtigungen angibt, auf die die Aktion angewendet wird.
Hinweis
In den .NET Framework Versionen 1.0, 1.1 und 2.0 werden die deklarativen Sicherheitsattribute, die mithilfe der AddDeclarativeSecurity -Methode auf eine Methode angewendet werden, im alten XML-Metadatenformat gespeichert. Weitere Informationen finden Sie unter Ausgeben deklarativer Sicherheitsattribute.