XmlSecureResolver Construtores
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Inicializa uma nova instância da XmlSecureResolver classe.
Sobrecargas
| Name | Description |
|---|---|
| XmlSecureResolver(XmlResolver, PermissionSet) |
Inicializa uma nova instância da XmlSecureResolver classe com e XmlResolverPermissionSet especificado. |
| XmlSecureResolver(XmlResolver, Evidence) |
Inicializa uma nova instância da XmlSecureResolver classe com e XmlResolverEvidence especificado. |
| XmlSecureResolver(XmlResolver, String) |
Inicializa uma nova instância da XmlSecureResolver classe com o XmlResolver URL e fornecido. |
Observações
Os três construtores fornecem três tipos de restrições de acesso:
O XmlSecureResolver(XmlResolver, String) construtor restringe o acesso usando uma URL.
O XmlSecureResolver(XmlResolver, PermissionSet) construtor restringe o acesso usando um conjunto de permissões.
O XmlSecureResolver(XmlResolver, Evidence) construtor restringe o acesso usando provas.
Consulte os tópicos de referência para construtores para exemplos destes tipos de restrições.
XmlSecureResolver(XmlResolver, PermissionSet)
Inicializa uma nova instância da XmlSecureResolver classe com e 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
O resolvedor XML que é envolto pelo XmlSecureResolverarquivo .
- permissionSet
- PermissionSet
O conjunto de permissões para se aplicar ao subjacente XmlResolver. Chama XmlSecureResolver o PermitOnly() método no conjunto de permissões antes de chamar o GetEntity(Uri, String, Type) método no resolvedor XML subjacente.
Exemplos
O exemplo seguinte constrói um XmlSecureResolver objeto usando um conjunto de permissões 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
Ver também
Aplica-se a
XmlSecureResolver(XmlResolver, Evidence)
Inicializa uma nova instância da XmlSecureResolver classe com e 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
O resolvedor XML que é envolto pelo XmlSecureResolverarquivo .
- evidence
- Evidence
A evidência usada para criar o PermissionSet que será aplicada ao subjacente XmlResolver. Chama XmlSecureResolver o PermitOnly() método no criado PermissionSet antes de chamar GetEntity(Uri, String, Type) ao subjacente XmlResolver.
Observações
Aqui estão alguns cenários possíveis e o tipo de evidência a fornecer para cada cenário:
Se você estiver trabalhando em um ambiente totalmente confiável, use seu assembly para criar a evidência:
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)Se você estiver trabalhando em um ambiente semiconfiável, tiver código ou dados provenientes de uma fonte externa, souber a origem da fonte externa e tiver um URI verificável, use o URI para criar a evidência:
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)Se você estiver trabalhando em um ambiente semiconfiável e tiver código ou dados provenientes de uma fonte externa, mas também não souber a origem da fonte externa:
Defina o
evidenceparâmetro comonull. Isso não permite acesso a recursos.-ou-
Se a sua candidatura necessitar de algum acesso a recursos, solicite provas ao autor da chamada.
Aplica-se a
XmlSecureResolver(XmlResolver, String)
- Origem:
- XmlSecureResolver.cs
- Origem:
- XmlSecureResolver.cs
- Origem:
- XmlSecureResolver.cs
- Origem:
- XmlSecureResolver.cs
- Origem:
- XmlSecureResolver.cs
Inicializa uma nova instância da XmlSecureResolver classe com o XmlResolver URL e fornecido.
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
O resolvedor XML que é envolto pelo XmlSecureResolverarquivo .
- securityUrl
- String
A URL usada para criar o PermissionSet que será aplicada ao subjacente XmlResolver. As XmlSecureResolver chamadas PermitOnly() sobre o criado PermissionSet antes de chamar GetEntity(Uri, String, Type) para o subjacente XmlResolver.
Exemplos
Este exemplo utiliza o XmlSecureResolver(XmlResolver, String) construtor para criar um XmlSecureResolver objeto que só pode aceder ao seu site local da intranet.
XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")
Observações
Importante
Existem diferenças na infraestrutura de segurança para o código a correr no .NET Framework common language runtime (CLR) e para o código a correr no CLR integrado no Microsoft SQL Server 2005. Isto pode levar a casos em que o código desenvolvido para o .NET Framework CLR funciona de forma diferente quando usado no CLR integrado do SQL Server. Uma dessas diferenças afeta a XmlSecureResolver classe quando você tem evidências baseadas em uma URL (ou seja, quando você usa o CreateEvidenceForUrl método ou o XmlSecureResolver(XmlResolver, String) construtor). O mecanismo de resolução de política do CLR integrado do SQL Server não usa a informação Url ou Zone. Em vez disso, ele concede permissões com base no GUID que o servidor adiciona quando os assemblies são carregados. Quando se usa o XmlSecureResolver no CLR integrado do SQL Server, forneça qualquer evidência necessária diretamente utilizando um PermissionSet especificado.