XmlSecureResolver Constructores
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Inicializa una nueva instancia de la clase XmlSecureResolver.
Sobrecargas
| Nombre | Description |
|---|---|
| XmlSecureResolver(XmlResolver, PermissionSet) |
Inicializa una nueva instancia de la XmlSecureResolver clase con y XmlResolverPermissionSet especificado. |
| XmlSecureResolver(XmlResolver, Evidence) |
Inicializa una nueva instancia de la XmlSecureResolver clase con y XmlResolverEvidence especificado. |
| XmlSecureResolver(XmlResolver, String) |
Inicializa una nueva instancia de la XmlSecureResolver clase con la dirección XmlResolver URL y proporcionada. |
Comentarios
Los tres constructores proporcionan tres tipos de restricciones de acceso:
El constructor restringe el XmlSecureResolver(XmlResolver, String) acceso mediante una dirección URL.
El constructor restringe el XmlSecureResolver(XmlResolver, PermissionSet) acceso mediante un conjunto de permisos.
El constructor restringe el XmlSecureResolver(XmlResolver, Evidence) acceso mediante evidencia.
Consulte los temas de referencia del constructor para obtener ejemplos de estos tipos de restricciones.
XmlSecureResolver(XmlResolver, PermissionSet)
Inicializa una nueva instancia de la XmlSecureResolver clase con y XmlResolverPermissionSet especificado.
public:
XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::Security::PermissionSet ^ permissionSet);
public XmlSecureResolver(System.Xml.XmlResolver resolver, System.Security.PermissionSet permissionSet);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * System.Security.PermissionSet -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, permissionSet As PermissionSet)
Parámetros
- resolver
- XmlResolver
Resolución XML encapsulada por .XmlSecureResolver
- permissionSet
- PermissionSet
El conjunto de permisos que se va a aplicar al subyacente XmlResolver. XmlSecureResolver Llama al PermitOnly() método en el conjunto de permisos antes de llamar al GetEntity(Uri, String, Type) método en la resolución XML subyacente.
Ejemplos
En el ejemplo siguiente se construye un XmlSecureResolver objeto mediante un conjunto de permisos personalizado.
public static Object GetFile (String fileURL, XmlResolver resolver) {
// Generate the default PermissionSet using the file URL.
Evidence evidence = XmlSecureResolver.CreateEvidenceForUrl(fileURL);
PermissionSet myPermissions = SecurityManager.ResolvePolicy(evidence);
// Modify the PermissionSet to only allow access to http://www.contoso.com.
// Create a WebPermission which only allows access to http://www.contoso.com.
WebPermission myWebPermission = new WebPermission(NetworkAccess.Connect, "http://www.contoso.com");
// Replace the existing WebPermission in myPermissions with the updated WebPermission.
myPermissions.SetPermission(myWebPermission);
// Use the modified PermissionSet to construct the XmlSecureResolver.
XmlSecureResolver sResolver = new XmlSecureResolver(resolver, myPermissions);
// Get the object.
Uri fullUri = sResolver.ResolveUri(null, fileURL);
return sResolver.GetEntity(fullUri, null, null);
}
public shared function GetFile (fileURL as String , resolver as XmlResolver) as Object
' Generate the default PermissionSet using the file URL.
Dim evidence as Evidence = XmlSecureResolver.CreateEvidenceForUrl(fileURL)
Dim myPermissions as PermissionSet = SecurityManager.ResolvePolicy(evidence)
' Modify the PermissionSet to only allow access to http://www.contoso.com.
' Create a WebPermission that only allows access to http://www.contoso.com.
Dim myWebPermission as WebPermission = new WebPermission(NetworkAccess.Connect, "http://www.contoso.com")
' Replace the existing WebPermission in myPermissions with the updated WebPermission.
myPermissions.SetPermission(myWebPermission)
' Use the modified PermissionSet to construct the XmlSecureResolver.
Dim sResolver as XmlSecureResolver = new XmlSecureResolver(resolver, myPermissions)
' Get the object.
Dim fullUri as Uri = sResolver.ResolveUri(nothing, fileURL)
return sResolver.GetEntity(fullUri, nothing, nothing)
end function
Consulte también
Se aplica a
XmlSecureResolver(XmlResolver, Evidence)
Inicializa una nueva instancia de la XmlSecureResolver clase con y XmlResolverEvidence especificado.
public:
XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public XmlSecureResolver(System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * System.Security.Policy.Evidence -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, evidence As Evidence)
Parámetros
- resolver
- XmlResolver
Resolución XML encapsulada por .XmlSecureResolver
- evidence
- Evidence
Evidencia utilizada para crear el PermissionSet objeto que se aplicará al subyacente XmlResolver. XmlSecureResolver llama al PermitOnly() método en el objeto creado PermissionSet antes de llamar a GetEntity(Uri, String, Type) en el subyacenteXmlResolver.
Comentarios
Estos son algunos escenarios posibles y el tipo de evidencia que se debe proporcionar para cada escenario:
Si trabaja en un entorno de plena confianza, use el ensamblado para crear la evidencia:
Evidence myEvidence = this.GetType().Assembly.Evidence; XmlSecureResolver myResolver; myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);Dim myEvidence As Evidence = Me.GetType().Assembly.Evidence Dim myResolver As XmlSecureResolver myResolver = New XmlSecureResolver(New XmlUrlResolver(), myEvidence)Si trabaja en un entorno de confianza parcial, tiene código o datos procedentes de un origen externo y conoce el origen del origen externo y tiene un URI verificable, use el URI para crear la evidencia:
Evidence myEvidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI); XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);Dim myEvidence As Evidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI) Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), myEvidence)Si trabaja en un entorno de confianza parcial y tiene código o datos procedentes de una fuente externa, pero tampoco conoce su procedencia, entonces:
Establezca el parámetro
evidenceennull. Esto no permite el acceso a los recursos.O bien
Si la aplicación requiere algún acceso a los recursos, solicite evidencia del autor de la llamada.
Se aplica a
XmlSecureResolver(XmlResolver, String)
- Source:
- XmlSecureResolver.cs
- Source:
- XmlSecureResolver.cs
- Source:
- XmlSecureResolver.cs
- Source:
- XmlSecureResolver.cs
- Source:
- XmlSecureResolver.cs
Inicializa una nueva instancia de la XmlSecureResolver clase con la dirección XmlResolver URL y proporcionada.
public:
XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::String ^ securityUrl);
public XmlSecureResolver(System.Xml.XmlResolver resolver, string? securityUrl);
public XmlSecureResolver(System.Xml.XmlResolver resolver, string securityUrl);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * string -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, securityUrl As String)
Parámetros
- resolver
- XmlResolver
Resolución XML encapsulada por .XmlSecureResolver
- securityUrl
- String
Dirección URL usada para crear el PermissionSet objeto que se aplicará al subyacente XmlResolver. Las XmlSecureResolver llamadas PermitOnly() en el objeto creado PermissionSet antes de llamar a GetEntity(Uri, String, Type) en el subyacente XmlResolver.
Ejemplos
En este ejemplo se usa el XmlSecureResolver(XmlResolver, String) constructor para crear un XmlSecureResolver objeto que solo puede acceder al sitio de intranet local.
XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")
Comentarios
Importante
Hay diferencias en la infraestructura de seguridad para el código que se ejecuta en common Language Runtime (CLR) de .NET Framework y para el código que se ejecuta en CLR que se integra en Microsoft SQL Server 2005. Esto puede provocar casos en los que el código desarrollado para el CLR de .NET Framework funciona de forma diferente cuando se usa en el CLR integrado de SQL Server. Una de estas diferencias afecta a la XmlSecureResolver clase cuando tiene evidencia que se basa en una dirección URL (es decir, cuando se usa el CreateEvidenceForUrl método o el XmlSecureResolver(XmlResolver, String) constructor). El mecanismo de resolución de directivas del CLR integrado de SQL Server no usa la información de Url o Zone. En su lugar, concede permisos basados en el GUID, que el servidor agrega cuando se cargan los ensamblados. Cuando usted utiliza XmlSecureResolver en el CLR integrado de SQL Server, proporcione cualquier evidencia necesaria directamente utilizando un PermissionSet especificado.