XmlSecureResolver Konstruktory
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie klasy XmlSecureResolver.
Przeciążenia
XmlSecureResolver(XmlResolver, PermissionSet) |
Inicjuje XmlSecureResolver nowe wystąpienie klasy z określonymi wartościami XmlResolver i PermissionSet . |
XmlSecureResolver(XmlResolver, Evidence) |
Inicjuje XmlSecureResolver nowe wystąpienie klasy z określonymi wartościami XmlResolver i Evidence . |
XmlSecureResolver(XmlResolver, String) |
Inicjuje XmlSecureResolver nowe wystąpienie klasy z podanym XmlResolver adresem URL i . |
Uwagi
Trzy konstruktory zapewniają trzy typy ograniczeń dostępu:
Konstruktor XmlSecureResolver(XmlResolver, String) ogranicza dostęp przy użyciu adresu URL.
Konstruktor XmlSecureResolver(XmlResolver, PermissionSet) ogranicza dostęp przy użyciu zestawu uprawnień.
Konstruktor XmlSecureResolver(XmlResolver, Evidence) ogranicza dostęp przy użyciu dowodów.
Zapoznaj się z tematami referencyjnymi konstruktorów, aby zapoznać się z przykładami tego typu ograniczeń.
XmlSecureResolver(XmlResolver, PermissionSet)
Inicjuje XmlSecureResolver nowe wystąpienie klasy z określonymi wartościami XmlResolver i PermissionSet .
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
Rozpoznawanie kodu XML opakowane przez element XmlSecureResolver.
- permissionSet
- PermissionSet
Zestaw uprawnień do zastosowania do bazowego XmlResolver. Metoda XmlSecureResolver wywołuje metodę PermitOnly() w zestawie uprawnień przed wywołaniem GetEntity(Uri, String, Type) metody w bazowym rozpoznawaniu XML.
Przykłady
Poniższy przykład tworzy XmlSecureResolver obiekt przy użyciu dostosowanego zestawu uprawnień.
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
Zobacz też
Dotyczy
XmlSecureResolver(XmlResolver, Evidence)
Inicjuje XmlSecureResolver nowe wystąpienie klasy z określonymi wartościami XmlResolver i Evidence .
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
Rozpoznawanie kodu XML opakowane przez element XmlSecureResolver.
- evidence
- Evidence
Dowody użyte do utworzenia elementu PermissionSet , który zostanie zastosowany do bazowego XmlResolverelementu . Metoda XmlSecureResolver wywołuje metodę PermitOnly() utworzoną PermissionSet przed wywołaniem GetEntity(Uri, String, Type) elementu bazowego XmlResolver.
Uwagi
Poniżej przedstawiono niektóre możliwe scenariusze i typ dowodów, które należy przedstawić dla każdego scenariusza:
Jeśli pracujesz w w pełni zaufanym środowisku, użyj zestawu, aby utworzyć dowody:
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)
Jeśli pracujesz w środowisku częściowo zaufanym, masz kod lub dane pochodzące z zewnętrznego źródła i znasz pochodzenie zewnętrznego źródła i masz weryfikowalny identyfikator URI, użyj identyfikatora URI, aby utworzyć dowody:
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)
Jeśli pracujesz w środowisku częściowo zaufanym i masz kod lub dane pochodzące z zewnętrznego źródła, ale nie znasz źródła zewnętrznego, albo:
evidence
Ustaw parametr nanull
wartość . Umożliwia to brak dostępu do zasobów.-lub-
Jeśli aplikacja wymaga dostępu do zasobów, zażądaj dowodów od obiektu wywołującego.
Dotyczy
XmlSecureResolver(XmlResolver, String)
Inicjuje XmlSecureResolver nowe wystąpienie klasy z podanym XmlResolver adresem URL i .
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
Rozpoznawanie kodu XML opakowane przez element XmlSecureResolver.
- securityUrl
- String
Adres URL użyty do utworzenia elementu PermissionSet , który zostanie zastosowany do bazowego XmlResolverelementu . Wywołania PermitOnly() XmlSecureResolver utworzonego PermissionSet obiektu przed wywołaniem GetEntity(Uri, String, Type) metody w obiekcie bazowym XmlResolver.
Przykłady
W tym przykładzie użyto konstruktora XmlSecureResolver(XmlResolver, String) do utworzenia XmlSecureResolver obiektu, który może uzyskiwać dostęp tylko do lokalnej witryny intranetowej.
XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")
Uwagi
Ważne
Istnieją różnice w infrastrukturze zabezpieczeń kodu uruchomionego w środowisku uruchomieniowym języka wspólnego (CLR) .NET Framework oraz w przypadku kodu uruchomionego w środowisku CLR zintegrowanym w Microsoft SQL Server 2005 r. Może to prowadzić do przypadków, w których kod opracowany dla .NET Framework CLR działa inaczej w przypadku użycia w SQL Server zintegrowanej clR. Jedna z tych różnic ma wpływ na klasę XmlSecureResolver , gdy masz dowód oparty na adresie URL (czyli w przypadku używania CreateEvidenceForUrl metody lub konstruktora XmlSecureResolver(XmlResolver, String) ). Mechanizm rozpoznawania zasad zintegrowanego środowiska CLR SQL Server nie używa Url informacji lub Zone . Zamiast tego przyznaje uprawnienia na podstawie identyfikatora GUID, który serwer dodaje podczas ładowania zestawów. Jeśli używasz elementu XmlSecureResolver w SQL Server zintegrowanej clR, podaj wszelkie wymagane dowody bezpośrednio przy użyciu określonego PermissionSetelementu .