MethodBuilder.AddDeclarativeSecurity(SecurityAction, PermissionSet) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Добавляет декларативную безопасность в этот метод.
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
Действия безопасности, которые необходимо предпринять (запрос, утверждение и т. д.).
- pset
- PermissionSet
Набор разрешений, к которые применяется действие.
Исключения
Недопустимый action (RequestMinimum, RequestOptionalи RequestRefuse недопустимый).
Содержащий тип был создан с помощью CreateType().
–или–
Набор pset разрешений содержит действие, которое было добавлено AddDeclarativeSecurity(SecurityAction, PermissionSet)ранее.
–или–
Для текущего метода свойство равноIsGenericMethod, true но IsGenericMethodDefinition это falseсвойство.
pset равно null.
Примеры
Приведенный ниже пример кода иллюстрирует контекстное использование AddDeclarativeSecurity для требования вызывающего метода иметь неограниченные разрешения.
// 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)
Комментарии
AddDeclarativeSecurityможно вызывать несколько раз при каждом вызове, указывая действие безопасности (напримерDemandAssert, , иDeny) и набор разрешений, к которым применяется действие.
Note
В .NET Framework версии 1.0, 1.1 и 2.0 декларативные атрибуты безопасности, примененные к методу, с помощью метода AddDeclarativeSecurity хранятся в старом формате метаданных XML. См. раздел "Выдача декларативных атрибутов безопасности".