XmlSecureResolver Oluşturucular

Tanım

XmlSecureResolver sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

Name Description
XmlSecureResolver(XmlResolver, PermissionSet)

ve XmlSecureResolver ile XmlResolver sınıfının yeni bir örneğini PermissionSet başlatır.

XmlSecureResolver(XmlResolver, Evidence)

ve XmlSecureResolver ile XmlResolver sınıfının yeni bir örneğini Evidence başlatır.

XmlSecureResolver(XmlResolver, String)

ve URL'si XmlSecureResolver ile XmlResolver sınıfının yeni bir örneğini başlatır.

Açıklamalar

Üç oluşturucu üç tür erişim kısıtlaması sağlar:

Bu tür kısıtlamaların örnekleri için oluşturucu başvuru konularına bakın.

XmlSecureResolver(XmlResolver, PermissionSet)

ve XmlSecureResolver ile XmlResolver sınıfının yeni bir örneğini PermissionSet başlatır.

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)

Parametreler

resolver
XmlResolver

tarafından sarmalanan XML çözümleyicisi XmlSecureResolver.

permissionSet
PermissionSet

Temel alınan XmlResolveröğesine uygulanacak izin kümesi. , XmlSecureResolver temel alınan XML çözümleyicisinde yöntemini çağırmadan PermitOnly() önce izin kümesindeki yöntemini çağırırGetEntity(Uri, String, Type).

Örnekler

Aşağıdaki örnek, özelleştirilmiş bir XmlSecureResolver izin kümesi kullanarak bir nesne oluşturur.


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

Ayrıca bkz.

Şunlara uygulanır

XmlSecureResolver(XmlResolver, Evidence)

ve XmlSecureResolver ile XmlResolver sınıfının yeni bir örneğini Evidence başlatır.

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)

Parametreler

resolver
XmlResolver

tarafından sarmalanan XML çözümleyicisi XmlSecureResolver.

evidence
Evidence

Temel alınan PermissionSetöğesine uygulanacak olan öğesini oluşturmak XmlResolver için kullanılan kanıt. , XmlSecureResolver temel alınan PermitOnly()üzerinde çağırmadan PermissionSet önce oluşturulan GetEntity(Uri, String, Type) üzerinde yöntemini çağırırXmlResolver.

Açıklamalar

Bazı olası senaryolar ve her senaryo için sağlayabilecek kanıt türleri şunlardır:

  • Tam olarak güvenilen bir ortamda çalışıyorsanız, kanıtı oluşturmak için derlemenizi kullanın:

    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)
    
  • Yarı güvenilir bir ortamda çalışıyorsanız, dış kaynaktan gelen kodunuz veya verileriniz varsa ve dış kaynağın kaynağını biliyorsanız ve doğrulanabilir bir URI'niz varsa, kanıtı oluşturmak için URI'yi kullanın:

    
    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)
    
  • Yarı güvenilir bir ortamda çalışıyorsanız ve dış kaynaktan gelen kodunuz veya verileriniz varsa ancak dış kaynağın kaynağını da bilmiyorsanız:

    parametresini evidence olarak nullayarlayın. Bu, kaynaklara erişime izin vermez.

    -veya-

    Uygulamanız kaynaklara erişim gerektiriyorsa, arayandan kanıt isteyin.

Şunlara uygulanır

XmlSecureResolver(XmlResolver, String)

Kaynak:
XmlSecureResolver.cs
Kaynak:
XmlSecureResolver.cs
Kaynak:
XmlSecureResolver.cs
Kaynak:
XmlSecureResolver.cs
Kaynak:
XmlSecureResolver.cs

ve URL'si XmlSecureResolver ile XmlResolver sınıfının yeni bir örneğini başlatır.

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)

Parametreler

resolver
XmlResolver

tarafından sarmalanan XML çözümleyicisi XmlSecureResolver.

securityUrl
String

Temel alınan PermissionSetöğesine uygulanacak url'yi XmlResolver oluşturmak için kullanılır. temel XmlSecureResolverPermitOnly()alınan üzerinde çağrıdan PermissionSetGetEntity(Uri, String, Type) önce oluşturulan XmlResolver çağrısı.

Örnekler

Bu örnekte oluşturucu yalnızca yerel intranet sitenize erişmesine izin verilen bir XmlSecureResolver(XmlResolver, String) nesne oluşturmak için kullanılırXmlSecureResolver.

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

Açıklamalar

Important

.NET Framework ortak dil çalışma zamanında (CLR) çalıştırılan kod ve Microsoft SQL Server 2005'te tümleştirilen CLR üzerinde çalışan kod için güvenlik altyapısında farklılıklar vardır. Bu, .NET Framework CLR için geliştirilen kodun SQL Server tümleşik CLR'de kullanıldığında farklı çalıştığı durumlara yol açabilir. Bu farklardan biri, URL'yi temel alan kanıtınız olduğunda XmlSecureResolver sınıfını etkiler (yani, CreateEvidenceForUrl yöntemini veya XmlSecureResolver(XmlResolver, String) oluşturucusunu kullandığınızda). SQL Server tümleşik CLR'nin ilke çözümleme mekanizması Url veya Zone bilgilerini kullanmaz. Bunun yerine, derlemeler yüklendiğinde sunucunun eklediği GUID'ye göre izinler verir. SQL Server tümleşik CLR'sinde XmlSecureResolver kullandığınızda, belirtilen PermissionSet kullanarak gerekli tüm kanıtları doğrudan sağlayın.

Şunlara uygulanır