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
요청, 어설션 등과 같은 수행할 보안 작업입니다.
- 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.
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에서는 메서드를 사용하여 AddDeclarativeSecurity 메서드에 적용된 선언적 보안 특성이 이전 XML 메타데이터 형식으로 저장됩니다. 선언적 보안 특성 내보내기 를 참조하세요.
적용 대상
.NET