Solicitar permisos codificados en XML
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 ejemplo siguiente se utiliza XML con 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
Referencia
PermissionSetAttribute Class
PermissionSet Class
Conceptos
Otros recursos
Metadatos y componentes autodescriptivos
Extender metadatos mediante atributos
Seguridad de acceso a código