Share via


Solicitar permisos codificados en XML

Actualización: noviembre 2007

Si es necesario solicitar un conjunto de permisos personalizados (mediante RequestMinimum, RequestOptional o RequestRefuse), se puede utilizar una representación XML del conjunto de permisos de una de estas dos maneras: pasando una cadena que contenga el conjunto de permisos codificados en XML o proporcionando la ubicación de un archivo XML que contenga el conjunto de permisos codificados. En el siguiente ejemplo se utiliza XML con el PermissionSetAttribute. El indicador XML es una cadena que contiene un conjunto de permisos codificados en XML, que en este caso representa un permiso UIPermission sin restricciones y un permiso RegistryPermission sin restricciones.

Ejemplo

'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.
      }
   }
}

En el ejemplo siguiente se muestra la solicitud de un conjunto de permisos personalizados donde se proporciona la ubicación y el nombre del archivo que contiene el mismo conjunto de permisos codificados en XML. Si no se especifica la ubicación del archivo XML, el motor en tiempo de ejecución lo buscará en el mismo directorio en que se encuentra la aplicación.

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.
      }
   }
}

Crear un conjunto de permisos codificados en XML

Para crear una codificación XML de un conjunto de permisos, cree una instancia del objeto PermissionSet, agregue al objeto las instancias de los permisos que desee y, a continuación, llame al método ToXml para devolver un objeto SecurityElement que represente la codificación XML o llame al método ToString para devolver una representación de cadena de la codificación XML.

Vea también

Conceptos

Solicitar permisos

Referencia

PermissionSetAttribute

PermissionSet

Otros recursos

Metadatos y componentes autodescriptivos

Extender metadatos mediante atributos

Seguridad de acceso a código