XmlSecureResolver Konstruktor

Definisi

Menginisialisasi instans baru dari kelas XmlSecureResolver.

Overload

Nama Deskripsi
XmlSecureResolver(XmlResolver, PermissionSet)

Menginisialisasi instans XmlSecureResolver baru kelas dengan XmlResolver dan PermissionSet yang ditentukan.

XmlSecureResolver(XmlResolver, Evidence)

Menginisialisasi instans XmlSecureResolver baru kelas dengan XmlResolver dan Evidence yang ditentukan.

XmlSecureResolver(XmlResolver, String)

Menginisialisasi instans XmlSecureResolver baru kelas dengan XmlResolver URL dan yang disediakan.

Keterangan

Ketiga konstruktor menyediakan tiga jenis pembatasan akses:

Lihat topik referensi konstruktor untuk contoh jenis pembatasan ini.

XmlSecureResolver(XmlResolver, PermissionSet)

Menginisialisasi instans XmlSecureResolver baru kelas dengan XmlResolver dan PermissionSet yang ditentukan.

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)

Parameter

resolver
XmlResolver

Pemecah masalah XML yang dibungkus oleh XmlSecureResolver.

permissionSet
PermissionSet

Izin yang diatur untuk diterapkan ke yang mendasar XmlResolver. Memanggil XmlSecureResolver metode pada set izin sebelum memanggil PermitOnly() metode pada pemecah masalah XML yang mendasarGetEntity(Uri, String, Type).

Contoh

Contoh berikut membuat objek dengan menggunakan set izin yang dikustomisasi XmlSecureResolver .


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

Lihat juga

Berlaku untuk

XmlSecureResolver(XmlResolver, Evidence)

Menginisialisasi instans XmlSecureResolver baru kelas dengan XmlResolver dan Evidence yang ditentukan.

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)

Parameter

resolver
XmlResolver

Pemecah masalah XML yang dibungkus oleh XmlSecureResolver.

evidence
Evidence

Bukti yang digunakan untuk membuat PermissionSet yang akan diterapkan ke yang mendasar XmlResolver. Memanggil XmlSecureResolver metode pada yang dibuat PermitOnly() sebelum memanggil PermissionSet pada yang mendasar GetEntity(Uri, String, Type)XmlResolver.

Keterangan

Berikut adalah beberapa skenario yang mungkin dan jenis bukti yang harus disediakan untuk setiap skenario:

  • Jika Anda bekerja di lingkungan yang sepenuhnya tepercaya, gunakan rakitan Anda untuk menciptakan bukti.

    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)
    
  • Jika Anda bekerja di lingkungan semi-tepercaya, Anda memiliki kode atau data yang berasal dari sumber luar, dan Anda tahu asal sumber luar dan memiliki URI yang dapat diverifikasi, gunakan URI untuk membuat bukti:

    
    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)
    
  • Jika Anda bekerja di lingkungan yang semi-tepercaya dan Anda memiliki kode atau data yang berasal dari sumber luar, tetapi Anda tidak tahu dari mana asal sumber luar tersebut.

    Atur parameter evidence menjadi null. Ini memungkinkan tidak ada akses ke sumber daya.

    -atau-

    Jika aplikasi Anda memerlukan beberapa akses ke sumber daya, minta bukti dari pemanggil.

Berlaku untuk

XmlSecureResolver(XmlResolver, String)

Sumber:
XmlSecureResolver.cs
Sumber:
XmlSecureResolver.cs
Sumber:
XmlSecureResolver.cs
Sumber:
XmlSecureResolver.cs
Sumber:
XmlSecureResolver.cs

Menginisialisasi instans XmlSecureResolver baru kelas dengan XmlResolver URL dan yang disediakan.

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)

Parameter

resolver
XmlResolver

Pemecah masalah XML yang dibungkus oleh XmlSecureResolver.

securityUrl
String

URL yang PermissionSet digunakan untuk membuat yang akan diterapkan ke yang mendasar XmlResolver. XmlSecureResolver Panggilan pada yang dibuat PermitOnly() sebelum memanggil PermissionSet pada yang mendasar GetEntity(Uri, String, Type)XmlResolver.

Contoh

Contoh ini menggunakan XmlSecureResolver(XmlResolver, String) konstruktor untuk membuat XmlSecureResolver objek yang diizinkan untuk mengakses situs intranet lokal Anda saja.

XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")

Keterangan

Important

Ada perbedaan dalam infrastruktur keamanan untuk kode yang berjalan pada .NET Framework common language runtime (CLR) dan untuk kode yang berjalan pada CLR yang terintegrasi dalam Microsoft SQL Server 2005. Ini dapat menyebabkan kasus di mana kode yang dikembangkan untuk .NET Framework CLR beroperasi secara berbeda ketika digunakan pada CLR terintegrasi SQL Server. Salah satu perbedaan ini memengaruhi kelas XmlSecureResolver ketika Anda memiliki bukti yang didasarkan pada URL (yaitu, ketika Anda menggunakan metode CreateEvidenceForUrl atau konstruktor XmlSecureResolver(XmlResolver, String)). Mekanisme resolusi kebijakan dari CLR terintegrasi SQL Server tidak menggunakan informasi Url atau Zone. Sebaliknya, ia memberikan izin berdasarkan GUID yang ditambahkan server saat assembly dimuat. Ketika Anda menggunakan XmlSecureResolver di CLR terintegrasi SQL Server, berikan bukti yang diperlukan secara langsung dengan menggunakan PermissionSet.

Berlaku untuk