선언적 보안
선언적 보안 구문에서는 특성을 사용하여 보안 정보를 코드의 메타데이터에 삽입할 수 있습니다. 특성을 어셈블리나 클래스, 멤버 수준에 삽입하여, 사용할 요구, 요청, 재정의 형식을 나타낼 수 있습니다. 요청은 공용 언어 런타임 기능이 있는 응용 프로그램에서 사용되어 응용 프로그램이 원하지 않거나 필요로 하는 권한을 공용 언어 런타임 보안 시스템에 알립니다. 요청과 재정의는 라이브러리에서 사용되어 리소스를 호출자로부터 보호하거나 기본 보안 동작을 재정의합니다.
참고 |
---|
.NET Framework 버전 4에서는 .NET Framework 보안 모델과 용어가 크게 변경되었습니다.이러한 변경 내용에 대한 자세한 내용은 .NET Framework 4의 보안 변경 내용을 참조하십시오. |
선언적 보안 호출을 사용하려면 필요한 특정 형태의 권한을 나타내도록 권한 개체의 상태 데이터를 초기화해야 합니다. 모든 기본 제공 권한에는 수행하려는 보안 작업의 형식을 설명하기 위해 SecurityAction 열거형에 전달되는 특성이 있습니다. 그러나, 권한에는 자신만 사용하는 고유한 매개 변수도 있습니다. 권한에만 사용하는 특정 매개 변수에 대한 자세한 내용은 기본 제공 권한에 대한 단원을 참조하십시오.
다음 코드 단편은 코드의 호출자가 MyPermission이라는 사용자 지정 권한을 갖도록 요청하는 선언적 구문을 보여 줍니다. 이 권한은 가상의 사용자 지정 권한이므로 .NET Framework에는 없습니다. 이 예제에서는 선언적 호출을 클래스 정의 바로 앞에 삽입하여 이 권한을 클래스 수준에 적용합니다. SecurityAction.Demand 구조가 특성에 전달되어 호출자가 실행되려면 이 권한이 있어야 함을 지정합니다.
<MyPermission(SecurityAction.Demand, Unrestricted = True)> Public Class MyClass1
Public Sub New()
'The constructor is protected by the security call.
End Sub
Public Sub MyMethod()
'This method is protected by the security call.
End Sub
Public Sub YourMethod()
'This method is protected by the security call.
End Sub
End Class
[MyPermission(SecurityAction.Demand, Unrestricted = true)]
public class MyClass
{
public MyClass()
{
//The constructor is protected by the security call.
}
public void MyMethod()
{
//This method is protected by the security call.
}
public void YourMethod()
{
//This method is protected by the security call.
}
}