Udostępnij za pośrednictwem


XmlSecureResolver Konstruktory

Definicja

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:

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 na nullwartość . 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 .

Dotyczy