XML로 인코딩된 권한 요청

업데이트: 2007년 11월

RequestMinimum, RequestOptional, RequestRefuse를 사용하여 사용자 지정 권한 집합을 요청해야 하는 경우 두 가지 방법으로 원하는 권한 집합의 XML 표현을 사용할 수 있습니다. 실제로 XML로 인코딩된 권한 집합이 포함된 문자열을 전달하거나 인코딩된 권한 집합이 포함된 XML 파일의 위치를 제공할 수 있습니다. 다음 예제에서는 PermissionSetAttribute가 포함된 XML을 사용합니다. XML 플래그는 XML로 인코딩된 권한 집합이 포함된 문자열입니다. 여기서 이 플래그는 제한 없는 UIPermission 및 제한 없는 RegistryPermission을 나타냅니다.

예제

'The attribute is placed at the assembly level.
Imports System
Imports System.Runtime.InteropServices
Imports System.Security.Permissions
<assembly: PermissionSetAttribute(SecurityAction.RequestMinimum, XML := "<PermissionSet class=""System.Security.PermissionSet"" version=""1""><Permission class=""System.Security.Permissions.UIPermission, mscorlib"" version=""1""><AllWindows/></Permission><Permission class=""System.Security.Permissions.RegistryPermission, mscorlib"" version=""1""><Unrestricted/></Permission></PermissionSet>")>
Namespace MyNamespace
   Public Class MyClass1
      Public Sub New()
      End Sub

      Public Sub MyMethod()
         'Perform user interface operations here.
      End Sub
   End Class
End Namespace
//The attribute is placed at the assembly level.
using System.Security.Permissions;
[assembly:PermissionSetAttribute(SecurityAction.RequestMinimum, XML="<PermissionSet class=\"System.Security.PermissionSet\" version=\"1\"><Permission class=\"System.Security.Permissions.UIPermission, mscorlib\" version=\"1\"><AllWindows/></Permission><Permission class=\"System.Security.Permissions.RegistryPermission, mscorlib\" version=\"1\"><Unrestricted/></Permission></PermissionSet>")]
namespace MyNamespace 
{
   using System;
   using System.Runtime.InteropServices;
   public class MyClass 
   {
      public MyClass() 
      {
      }
      public void MyMethod() 
      {
        //Perform user interface operations here.
      }
   }
}

다음 예제에서는 XML로 인코딩된 동일한 권한 집합이 포함된 파일의 위치와 이름을 제공하여 사용자 지정 권한 집합을 요청합니다. XML 파일의 위치를 지정하지 않으면 공용 언어 런타임은 응용 프로그램이 있는 디렉터리에서 XML 파일을 찾습니다.

Imports System
Imports System.Runtime.InteropServices
Imports System.Security.Permissions
'The attribute is placed at the assembly level.
<assembly: PermissionSetAttribute(SecurityAction.RequestMinimum, File := "pset.xml")>

Namespace MyNamespace
   Public Class MyClass1
      Public Sub New()
      End Sub 
      
      Public Sub MyMethod()
         'Perform operations that require permissions here.
      End Sub
   End Class
End Namespace
//The attribute is placed at the assembly level.
using System.Security.Permissions;
[assembly:PermissionSetAttribute(SecurityAction.RequestMinimum, File = "pset.xml")]
namespace MyNamespace 
{
   using System;
   using System.Runtime.InteropServices;
   
   public class MyClass 
   {
      public MyClass() 
      {
      }
      public void MyMethod() 
      {
          //Perform operations that require permissions here.
      }
   }
}

XML로 인코딩된 권한 집합 만들기

PermissionSet 개체의 인스턴스를 만들고, 원하는 권한의 인스턴스를 개체에 추가한 다음, ToXml 메서드를 호출하여 XML 인코딩을 나타내는 SecurityElement 개체를 반환하거나 ToString 메서드를 호출하여 XML 인코딩의 문자열 표현을 반환하여 권한 집합의 XML 인코딩을 만들 수 있습니다.

참고 항목

개념

권한 요청

참조

PermissionSetAttribute

PermissionSet

기타 리소스

메타데이터 및 자동 기술 구성 요소

특성을 사용하여 메타데이터 확장

코드 액세스 보안