XmlSecureResolver Construtores
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicializa uma nova instância da classe XmlSecureResolver.
Sobrecargas
XmlSecureResolver(XmlResolver, PermissionSet) |
Inicializa uma nova instância da classe XmlSecureResolver com o XmlResolver e PermissionSet especificados. |
XmlSecureResolver(XmlResolver, Evidence) |
Inicializa uma nova instância da classe XmlSecureResolver com o XmlResolver e Evidence especificados. |
XmlSecureResolver(XmlResolver, String) |
Inicializa uma nova instância da classe XmlSecureResolver com o XmlResolver e a URL fornecida. |
Comentários
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 evidências.
Consulte os tópicos de referência do construtor para obter exemplos desses tipos de restrições.
XmlSecureResolver(XmlResolver, PermissionSet)
Inicializa uma nova instância da classe XmlSecureResolver com o XmlResolver e PermissionSet especificados.
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 é encapsulado pelo XmlSecureResolver.
- permissionSet
- PermissionSet
O conjunto de permissões a ser aplicado ao XmlResolver subjacente. O XmlSecureResolver chama o método PermitOnly() na permissão definida antes de chamar o método GetEntity(Uri, String, Type) no resolvedor XML subjacente.
Exemplos
O exemplo a seguir constrói um XmlSecureResolver objeto usando um conjunto de permissões personalizado.
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 = gcnew 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 = gcnew XmlSecureResolver( resolver,myPermissions );
// Get the object.
Uri^ fullUri = sResolver->ResolveUri( nullptr, fileURL );
return sResolver->GetEntity( fullUri, nullptr, nullptr );
}
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
Confira também
Aplica-se a
XmlSecureResolver(XmlResolver, Evidence)
Inicializa uma nova instância da classe XmlSecureResolver com o XmlResolver e Evidence especificados.
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 é encapsulado pelo XmlSecureResolver.
- evidence
- Evidence
A evidência a ser usada para criar o PermissionSet que será aplicado ao XmlResolver subjacente. O XmlSecureResolver chama o método PermitOnly() criado PermissionSet antes de chamar GetEntity(Uri, String, Type) no XmlResolver subjacente.
Comentários
Aqui estão alguns cenários possíveis e o tipo de evidência a ser fornecida para cada cenário:
Se você estiver trabalhando em um ambiente totalmente confiável, use o 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 semi-confiável, terá código ou dados provenientes de uma fonte externa e sabe a origem da origem externa e tem 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 semi-confiá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 parâmetro de
evidence
anull
. Isso não permite sem acesso a recursos.- ou -
Se seu aplicativo requer algum acesso aos recursos, solicite a evidência do chamador.
Aplica-se a
XmlSecureResolver(XmlResolver, String)
Inicializa uma nova instância da classe XmlSecureResolver com o XmlResolver e a URL fornecida.
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 é encapsulado pelo XmlSecureResolver.
- securityUrl
- String
A URL usada para criar o PermissionSet que será aplicado ao XmlResolver subjacente. O XmlSecureResolver chama PermitOnly() no PermissionSet criado antes de chamar GetEntity(Uri, String, Type) no XmlResolver subjacente.
Exemplos
Este exemplo usa o XmlSecureResolver(XmlResolver, String) construtor para criar um XmlSecureResolver objeto que tem permissão para acessar apenas o site da intranet local.
XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")
Comentários
Importante
Há diferenças na infraestrutura de segurança para o código em execução no CLR (common language runtime) .NET Framework e para o código em execução no CLR que é integrado no Microsoft SQL Server 2005. Isso pode levar a casos em que o código desenvolvido para o CLR .NET Framework opera de forma diferente quando usado no CLR integrado 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 as informações ou Zone as Url informações. Em vez disso, ele concede permissões com base no GUID que o servidor adiciona quando os assemblies são carregados. Ao usar o XmlSecureResolver CLR integrado no SQL Server, forneça todas as evidências necessárias diretamente usando uma especificadaPermissionSet.