XmlSecureResolver 생성자

정의

XmlSecureResolver 클래스의 새 인스턴스를 초기화합니다.

오버로드

XmlSecureResolver(XmlResolver, PermissionSet)

지정된 XmlSecureResolverXmlResolver를 사용하여 PermissionSet 클래스의 새 인스턴스를 초기화합니다.

XmlSecureResolver(XmlResolver, Evidence)

지정된 XmlSecureResolverXmlResolver를 사용하여 Evidence 클래스의 새 인스턴스를 초기화합니다.

XmlSecureResolver(XmlResolver, String)

XmlSecureResolver 및 제공된 URL을 사용하여 XmlResolver 클래스의 새 인스턴스를 초기화합니다.

설명

세 가지 생성자는 세 가지 유형의 액세스 제한을 제공합니다.

이러한 유형의 제한 사항에 대한 예제는 생성자 참조 항목을 참조하세요.

XmlSecureResolver(XmlResolver, PermissionSet)

지정된 XmlSecureResolverXmlResolver를 사용하여 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)

매개 변수

resolver
XmlResolver

XmlSecureResolver에서 래핑된 XML 확인자입니다.

permissionSet
PermissionSet

기본 XmlResolver에 적용할 권한 집합입니다. XmlSecureResolver는 기본 XML 확인자에 대해 GetEntity(Uri, String, Type) 메서드를 호출하기 전에 권한 집합에 대해 PermitOnly() 메서드를 호출합니다.

예제

다음 예제에서는 사용자 지정 권한 집합을 XmlSecureResolver 사용하여 개체를 생성합니다.

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

추가 정보

적용 대상

XmlSecureResolver(XmlResolver, Evidence)

지정된 XmlSecureResolverXmlResolver를 사용하여 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)

매개 변수

resolver
XmlResolver

XmlSecureResolver에서 래핑된 XML 확인자입니다.

evidence
Evidence

기본 XmlResolver에 적용될 PermissionSet를 만드는 데 사용되는 증거입니다. XmlSecureResolver는 기본 XmlResolver에 대해 GetEntity(Uri, String, Type)를 호출하기 전에 만들어진 PermissionSet에 대해 PermitOnly() 메서드를 호출합니다.

설명

다음은 몇 가지 가능한 시나리오와 각 시나리오에 대해 제공할 증거 유형입니다.

  • 완전히 신뢰할 수 있는 환경에서 작업하는 경우 어셈블리를 사용하여 증거를 만듭니다.

    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)
    
  • 반독점 환경에서 작업하는 경우 외부 원본에서 오는 코드 또는 데이터가 있고 외부 원본의 출처를 알고 있고 확인 가능한 URI가 있는 경우 URI를 사용하여 증거를 만듭니다.

    
    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)
    
  • 반독점 환경에서 작업 중이고 외부 원본에서 오는 코드 또는 데이터가 있지만 외부 원본의 출처를 모르는 경우 다음 중 하나를 수행합니다.

    evidence 매개 변수를 null로 설정합니다. 이렇게 하면 리소스에 액세스할 수 없습니다.

    또는

    애플리케이션에서 리소스에 액세스해야 할 경우 호출자에게 증명 정보를 요청합니다.

적용 대상

XmlSecureResolver(XmlResolver, String)

XmlSecureResolver 및 제공된 URL을 사용하여 XmlResolver 클래스의 새 인스턴스를 초기화합니다.

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)

매개 변수

resolver
XmlResolver

XmlSecureResolver에서 래핑된 XML 확인자입니다.

securityUrl
String

기본 PermissionSet에 적용될 XmlResolver를 만드는 데 사용하는 URL입니다. XmlSecureResolver는 내부 PermitOnly()에 대해 PermissionSet를 호출하기 전에 생성된 GetEntity(Uri, String, Type)에 대해 XmlResolver를 호출합니다.

예제

이 예제에서는 생성자를 사용하여 XmlSecureResolver(XmlResolver, String) 로컬 인 XmlSecureResolver 트라넷 사이트에만 액세스할 수 있는 개체를 만듭니다.

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

설명

중요

.NET Framework CLR(공용 언어 런타임)에서 실행되는 코드와 Microsoft SQL Server 2005 내에 통합된 CLR에서 실행되는 코드에 대한 보안 인프라에는 차이가 있습니다. 이로 인해 .NET Framework CLR용으로 개발된 코드가 SQL Server 통합 CLR에서 사용될 때 다르게 작동하는 경우가 발생할 수 있습니다. 이러한 차이점 중 하나는 URL(즉, 메서드 또는 생성자를 사용할 때)을 기반으로 하는 증거가 있는 경우 클래스에 CreateEvidenceForUrl XmlSecureResolver(XmlResolver, String) 영향을 XmlSecureResolver 줍니다. SQL Server 통합 CLR의 정책 확인 메커니즘은 해당 또는 Zone 정보를 사용하지 Url 않습니다. 대신 어셈블리가 로드될 때 서버가 추가하는 GUID에 따라 사용 권한을 부여합니다. SQL Server 통합 CLR에서 사용하는 XmlSecureResolver 경우 지정된 PermissionSet정보를 사용하여 필요한 증명 정보를 직접 제공합니다.

적용 대상