XmlSecureResolver Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje novou instanci XmlSecureResolver třídy.
Přetížení
XmlSecureResolver(XmlResolver, PermissionSet) |
Inicializuje novou instanci XmlSecureResolver třídy se zadaným a PermissionSet zadaným objektemXmlResolver. |
XmlSecureResolver(XmlResolver, Evidence) |
Inicializuje novou instanci XmlSecureResolver třídy se zadaným a Evidence zadaným objektemXmlResolver. |
XmlSecureResolver(XmlResolver, String) |
Inicializuje novou instanci XmlSecureResolver třídy s zadanou XmlResolver adresou URL. |
Poznámky
Tři konstruktory poskytují tři typy omezení přístupu:
Konstruktor XmlSecureResolver(XmlResolver, String) omezuje přístup pomocí adresy URL.
Konstruktor XmlSecureResolver(XmlResolver, PermissionSet) omezuje přístup pomocí sady oprávnění.
Konstruktor XmlSecureResolver(XmlResolver, Evidence) omezuje přístup pomocí důkazů.
Příklady těchto typů omezení najdete v referenčních tématech konstruktoru.
XmlSecureResolver(XmlResolver, PermissionSet)
Inicializuje novou instanci XmlSecureResolver třídy se zadaným a PermissionSet zadaným objektemXmlResolver.
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)
Parametry
- resolver
- XmlResolver
Překladač XML, který je zabalen .XmlSecureResolver
- permissionSet
- PermissionSet
Sada oprávnění, která se má použít u podkladového objektu XmlResolver. Volá XmlSecureResolver metodu PermitOnly() pro sadu oprávnění před voláním GetEntity(Uri, String, Type) metody na podkladovém překladač XML.
Příklady
Následující příklad vytvoří XmlSecureResolver objekt pomocí přizpůsobené sady oprávnění.
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
Viz také
Platí pro
XmlSecureResolver(XmlResolver, Evidence)
Inicializuje novou instanci XmlSecureResolver třídy se zadaným a Evidence zadaným objektemXmlResolver.
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)
Parametry
- resolver
- XmlResolver
Překladač XML, který je zabalen .XmlSecureResolver
- evidence
- Evidence
Důkazy použité k vytvoření PermissionSet , které se použijí na podkladové XmlResolver. Volání XmlSecureResolver metody vytvořené PermitOnly() PermissionSet před voláním GetEntity(Uri, String, Type) na podkladové XmlResolver.
Poznámky
Tady jsou některé možné scénáře a typ důkazů, které mají být k dispozici pro každý scénář:
Pokud pracujete v plně důvěryhodném prostředí, vytvořte pomocí sestavení důkazy:
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)
Pokud pracujete v částečně důvěryhodném prostředí, máte kód nebo data pocházející z vnějšího zdroje a znáte původ vnějšího zdroje a máte ověřitelný identifikátor URI, pomocí identifikátoru URI vytvořte důkaz:
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)
Pokud pracujete v částečně důvěryhodném prostředí a máte kód nebo data pocházející z vnějšího zdroje, ale neznáte původ vnějšího zdroje:
evidence
Nastavte parametr nanull
. To neumožňuje přístup k prostředkům.-nebo-
Pokud vaše aplikace vyžaduje přístup k prostředkům, požádejte volajícího o důkaz.
Platí pro
XmlSecureResolver(XmlResolver, String)
Inicializuje novou instanci XmlSecureResolver třídy s zadanou XmlResolver adresou URL.
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)
Parametry
- resolver
- XmlResolver
Překladač XML, který je zabalen .XmlSecureResolver
- securityUrl
- String
Adresa URL použitá PermissionSet k vytvoření, která se použije u podkladového objektu XmlResolver. Volání XmlSecureResolver vytvořeného PermissionSet před voláním GetEntity(Uri, String, Type) podkladového objektu XmlResolver.PermitOnly()
Příklady
Tento příklad používá XmlSecureResolver(XmlResolver, String) konstruktor k vytvoření objektu XmlSecureResolver , který má povolený přístup pouze k místnímu intranetovém webu.
XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")
Poznámky
Důležité
Existují rozdíly v infrastruktuře zabezpečení pro kód spuštěný v modulu CLR (Common Language Runtime) .NET Framework common language runtime (CLR) a kód spuštěný v modulu CLR, který je integrovaný v rámci Microsoft SQL Server 2005. To může vést k případům, kdy kód vyvinutý pro .NET Framework CLR funguje odlišně při použití v SQL Server integrovaném CLR. Jeden z těchto rozdílů ovlivňuje XmlSecureResolver třídu, pokud máte důkazy založené na adrese URL (to znamená při použití CreateEvidenceForUrl metody nebo konstruktoru XmlSecureResolver(XmlResolver, String) ). Mechanismus řešení zásad integrovaného CLR SQL Server nepoužívá Url ani Zone informace. Místo toho uděluje oprávnění na základě identifikátoru GUID, který server přidá při načtení sestavení. Při použití XmlSecureResolver v SQL Server integrované CLR poskytnout všechny požadované důkazy přímo pomocí zadaného PermissionSet.