XmlSecureResolver Costruttori
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizializza una nuova istanza della classe XmlSecureResolver.
Overload
XmlSecureResolver(XmlResolver, PermissionSet) |
Inizializza una nuova istanza della classe XmlSecureResolver con gli oggetti XmlResolver e PermissionSet specificati. |
XmlSecureResolver(XmlResolver, Evidence) |
Inizializza una nuova istanza della classe XmlSecureResolver con gli oggetti XmlResolver e Evidence specificati. |
XmlSecureResolver(XmlResolver, String) |
Inizializza una nuova istanza della classe XmlSecureResolver con l'oggetto XmlResolver e l'URL forniti. |
Commenti
I tre costruttori forniscono tre tipi di restrizioni di accesso:
Il XmlSecureResolver(XmlResolver, String) costruttore limita l'accesso usando un URL.
Il XmlSecureResolver(XmlResolver, PermissionSet) costruttore limita l'accesso usando un set di autorizzazioni.
Il XmlSecureResolver(XmlResolver, Evidence) costruttore limita l'accesso usando l'evidenza.
Per esempi di questi tipi di restrizioni, vedere gli argomenti di riferimento del costruttore.
XmlSecureResolver(XmlResolver, PermissionSet)
Inizializza una nuova istanza della classe XmlSecureResolver con gli oggetti XmlResolver e PermissionSet specificati.
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)
Parametri
- resolver
- XmlResolver
Resolver XML di cui è stato eseguito il wrapping tramite l'oggetto XmlSecureResolver.
- permissionSet
- PermissionSet
Set di autorizzazioni da applicare all'oggetto XmlResolver sottostante. L'oggetto XmlSecureResolver chiama il metodo PermitOnly() per il set di autorizzazioni prima di chiamare il metodo GetEntity(Uri, String, Type) sul resolver XML sottostante.
Esempio
Nell'esempio seguente viene creato un XmlSecureResolver oggetto usando un set di autorizzazioni personalizzato.
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
Vedi anche
Si applica a
XmlSecureResolver(XmlResolver, Evidence)
Inizializza una nuova istanza della classe XmlSecureResolver con gli oggetti XmlResolver e Evidence specificati.
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)
Parametri
- resolver
- XmlResolver
Resolver XML di cui è stato eseguito il wrapping tramite l'oggetto XmlSecureResolver.
- evidence
- Evidence
Evidenza usata per creare l'oggetto PermissionSet che verrà applicato all'oggetto XmlResolver sottostante. L'oggetto XmlSecureResolver chiama il metodo PermitOnly() sull'oggetto PermissionSet creato prima di chiamare il metodo GetEntity(Uri, String, Type) sull'oggetto XmlResolver sottostante.
Commenti
Ecco alcuni scenari possibili e il tipo di evidenza da fornire per ogni scenario:
Se si lavora in un ambiente completamente attendibile, usare l'assembly per creare l'evidenza:
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 si lavora in un ambiente semi-attendibile, si dispone di codice o dati provenienti da un'origine esterna e si conosce l'origine dell'origine esterna e si dispone di un URI verificabile, usare l'URI per creare l'evidenza:
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 si lavora in un ambiente semi-attendibile e si dispone di codice o dati provenienti da un'origine esterna, ma non si conosce l'origine dell'origine esterna, né:
Impostare il parametro
evidence
sunull
. In tal modo si impedisce l'accesso alle risorse.-oppure-
Se l'applicazione richiede accesso alle risorse, richiedere l'evidenza dal chiamante.
Si applica a
XmlSecureResolver(XmlResolver, String)
Inizializza una nuova istanza della classe XmlSecureResolver con l'oggetto XmlResolver e l'URL forniti.
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)
Parametri
- resolver
- XmlResolver
Resolver XML di cui è stato eseguito il wrapping tramite l'oggetto XmlSecureResolver.
- securityUrl
- String
URL usato per creare l'oggetto PermissionSet che verrà applicato all'oggetto XmlResolver sottostante. L'oggetto XmlSecureResolver chiama il metodo PermitOnly() sull'oggetto PermissionSet creato prima di chiamare il metodo GetEntity(Uri, String, Type) sull'oggetto XmlResolver sottostante.
Esempio
In questo esempio viene usato il XmlSecureResolver(XmlResolver, String) costruttore per creare un XmlSecureResolver oggetto autorizzato ad accedere solo al sito Intranet locale.
XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")
Commenti
Importante
Esistono differenze nell'infrastruttura di sicurezza per il codice in esecuzione nel .NET Framework Common Language Runtime (CLR) e per il codice in esecuzione in CLR integrato all'interno di Microsoft SQL Server 2005. Ciò può causare casi in cui il codice sviluppato per l'.NET Framework CLR funziona in modo diverso quando viene usato nel SQL Server CLR integrato. Una di queste differenze influisce sulla XmlSecureResolver classe quando si dispone di prove basate su un URL, ovvero quando si usa il CreateEvidenceForUrl metodo o il XmlSecureResolver(XmlResolver, String) costruttore. Il meccanismo di risoluzione dei criteri del SQL Server CLR integrato non usa le Url informazioni o Zone . Concede invece le autorizzazioni in base al GUID aggiunto dal server quando vengono caricati gli assembly. Quando si usa XmlSecureResolver nella SQL Server CLR integrato, fornire tutte le prove necessarie direttamente usando un oggetto specificatoPermissionSet.