XmlSecureResolver XmlSecureResolver XmlSecureResolver XmlSecureResolver Class

정의

XmlResolver 개체를 래핑하고 내부 XmlResolver에서 액세스 가능한 리소스를 제한하여 XmlResolver의 다른 구현을 보호해 줍니다.Helps to secure another implementation of XmlResolver by wrapping the XmlResolver object and restricting the resources that the underlying XmlResolver has access to.

public ref class XmlSecureResolver : System::Xml::XmlResolver
public class XmlSecureResolver : System.Xml.XmlResolver
type XmlSecureResolver = class
    inherit XmlResolver
Public Class XmlSecureResolver
Inherits XmlResolver
상속
XmlSecureResolverXmlSecureResolverXmlSecureResolverXmlSecureResolver

설명

XmlUrlResolver 클래스는 System.Xml 네임스페이스의 모든 클래스에 대한 기본 해결 프로그램입니다.The XmlUrlResolver class is the default resolver for all classes in the System.Xml namespace. XML 문서를 로드 하 고 엔터티, Dtd 또는 스키마와 같은 외부 리소스를 확인 하 고 가져오기 또는 include 지시문에 사용 됩니다.It is used to load XML documents and to resolve external resources such as entities, DTDs or schemas, and import or include directives.

지정 하 여이 기본값을 재정의할 수 있습니다는 XmlResolver 사용할 개체입니다.You can override this default by specifying the XmlResolver object to use. 예를 들어, 리소스를 제한 하려는 경우는 내부 XmlResolver 액세스할 수 있습니다, 사용할 수는 XmlSecureResolver 개체입니다.For example, if you want to restrict the resources that the underlying XmlResolver can access, you can use an XmlSecureResolver object.

XmlSecureResolver 구체적인 구현을 주위를 래핑하 XmlResolver 하 고 리소스를 제한 하는 기본 XmlResolver 에 액세스할 수 합니다.XmlSecureResolver wraps around a concrete implementation of XmlResolver and restricts the resources that the underlying XmlResolver has access to. 예를 들어 XmlSecureResolver 금지는 포함 된 리소스 URI (Uniform Identifier) 참조에서 발생 하는 도메인 간 리디렉션 수 있습니다.For example, XmlSecureResolver has the ability to prohibit cross-domain redirection, which occurs from an embedded Uniform Resource Identifier (URI) reference.

생성 하는 경우는 XmlSecureResolver 개체를 제공 하는 유효한 XmlResolver URL 증명 정보 개체 또는 권한 집합을 인스턴스에 사용 되는 함께 XmlSecureResolver 보안 결정을 합니다.When you construct an XmlSecureResolver object, you provide a valid XmlResolver implementation along with a URL, an instance of an evidence object, or a permission set, which is used by the XmlSecureResolver to determine security. 중 하나를 System.Security.PermissionSet 생성 됩니다 또는 기존을 사용 및 PermissionSet.PermitOnly 기본 보호 하기 위해 호출 된 XmlResolver합니다.Either a System.Security.PermissionSet is generated or the existing one is used and PermissionSet.PermitOnly is called on it to help secure the underlying XmlResolver.

중요

XmlSecureResolver 개체에는 사용자 자격 증명과 같은 중요한 정보가 포함될 수 있습니다.XmlSecureResolver objects can contain sensitive information such as user credentials. 캐시할 때는 주의 해야 XmlSecureResolver 개체를 전달 하지 않아야 합니다 XmlSecureResolver 신뢰할 수 없는 구성 요소에는 개체입니다.You should be careful when caching XmlSecureResolver objects and should not pass the XmlSecureResolver object to an untrusted component.

중요

및 Microsoft SQL Server 2005 내에서 통합 된 CLR에서 실행 되는 코드는.NET Framework CLR (공용 언어 런타임)에서 실행 되는 코드에 대 한 보안 인프라에서 차이가 많습니다.There are differences in the security infrastructure for code running on the .NET Framework common language runtime (CLR) and for code running on the CLR that is integrated within Microsoft SQL Server 2005. 이 SQL Server에서 사용 되는 경우.NET Framework CLR 다르게 작동에 대 한 개발 된 코드 CLR을 통합 하는 위치 하는 경우 발생할 수 있습니다.This can lead to cases where code developed for the .NET Framework CLR operates differently when used on the SQL Server integrated CLR. 이러한 차이점에 영향을 줍니다 합니다 XmlSecureResolver 증거는 URL을 기반으로 하는 경우 클래스 (즉, 사용 하는 경우는 CreateEvidenceForUrl(String) 메서드 또는 XmlSecureResolver 생성자).One of these differences affects the XmlSecureResolver class when you have evidence that is based on a URL (that is, when you use the CreateEvidenceForUrl(String) method or the XmlSecureResolver constructor). 정책 확인 메커니즘의 SQL Server CLR 통합을 사용 하지 않는 합니다 Url 또는 Zone 정보입니다.The policy resolution mechanism of the SQL Server integrated CLR does not use the Url or Zone information. 대신 어셈블리 로드 되 면 서버를 추가 하는 GUID를 기반으로 하는 권한을 부여 합니다.Instead, it grants permissions based on the GUID that the server adds when assemblies are loaded. 사용 하는 경우는 XmlSecureResolver 에서 SQL Server CLR 통합, 지정 된 사용 하 여 직접 필요한 모든 증명 정보를 제공 PermissionSet합니다.When you use the XmlSecureResolver in the SQL Server integrated CLR, provide any required evidence directly by using a specified PermissionSet.

보안 해결 프로그램을 사용 하려면To use a secure resolver

  1. 올바른 권한 집합으로 XmlSecureResolver를 만듭니다.Create an XmlSecureResolver with the correct permission set.

  2. XmlReaderSettings 개체를 사용하는 XmlSecureResolver 개체를 만듭니다.Create an XmlReaderSettings object that uses the XmlSecureResolver object.

    XmlReaderSettings settings = new XmlReaderSettings();
    settings.XmlResolver = myResolver;
    
    Dim settings As New XmlReaderSettings()
    settings.XmlResolver = myResolver
    
  3. 전달 합니다 XmlReaderSettings 개체를 Create 메서드를 작성할 때는 XmlReader 개체.Pass the XmlReaderSettings object to the Create method when you're creating the XmlReader object.

    XmlReader reader = XmlReader.Create("books.xml", settings);
    
    Dim reader As XmlReader = XmlReader.Create("books.xml", settings)   
    

URL을 사용 하 여 액세스를 제한 하려면To restrict access by using a URL

사용 된 XmlSecureResolver(XmlResolver, String) 만드는 생성자입니다는 XmlSecureResolver 로컬 인트라넷 사이트에만 액세스할 수 있는 개체입니다.Use the XmlSecureResolver(XmlResolver, String) constructor to create an XmlSecureResolver object that is allowed to access your local intranet site only.

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

권한 집합을 사용 하 여 액세스를 제한 하려면To restrict access by using a permission set

  1. WebPermission 개체를 만듭니다.Create a WebPermission object.

    WebPermission myWebPermission = new WebPermission(PermissionState.None);
    
    Dim myWebPermission As New WebPermission(PermissionState.None)
    
  2. 에 대 한 액세스를 허용 하려는 Url을 지정 합니다.Specify the URLs that you want to allow access to.

    myWebPermission.AddPermission(NetworkAccess.Connect,"http://www.contoso.com/");
    myWebPermission.AddPermission(NetworkAccess.Connect,"http://litwareinc.com/data/");
    
    myWebPermission.AddPermission(NetworkAccess.Connect, "http://www.contoso.com/")
    myWebPermission.AddPermission(NetworkAccess.Connect, "http://litwareinc.com/data/")
    
  3. PermissionSet 개체에 웹 권한을 추가합니다.Add the web permissions to the PermissionSet object.

    PermissionSet myPermissions = new PermissionSet(PermissionState.None);
    myPermissions.AddPermission(myWebPermission);
    
    Dim myPermissions As New PermissionSet(PermissionState.None)
    myPermissions.AddPermission(myWebPermission)
    
  4. 사용 된 XmlSecureResolver(XmlResolver, PermissionSet) 만드는 생성자입니다는 XmlSecureResolver 권한 집합을 사용 하 여 개체입니다.Use the XmlSecureResolver(XmlResolver, PermissionSet) constructor to create an XmlSecureResolver object by using the permission set.

    XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), myPermissions);
    
    Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), myPermissions)
    

    참조 된 XmlSecureResolver 또 다른 예에 대 한 참조 페이지입니다.See the XmlSecureResolver reference page for another example.

증명 정보를 사용 하 여 액세스를 제한 하려면To restrict access by using evidence

사용 하 여 액세스를 제한할 수 있습니다 합니다 XmlSecureResolver(XmlResolver, Evidence) 생성자 및 지정 Evidence합니다.You can restrict access by using the XmlSecureResolver(XmlResolver, Evidence) constructor and specifying Evidence. Evidence를 사용하면 기본 PermissionSet에 적용되는 XmlResolver을 만들 수 있습니다.The Evidence is used to create the PermissionSet that is applied to the underlying XmlResolver. XmlSecureResolver는 리소스를 열기 전에 생성된 PermitOnly에서 PermissionSet를 호출합니다.The XmlSecureResolver calls PermitOnly on the created PermissionSet before opening any resources.

다음은 몇 가지 일반적인 시나리오 및 각각에 대해 제공할 증명 정보 형식입니다.Here are some common scenarios and the type of evidence to provide for each:

  • 완전히 신뢰할 수 있는 환경에서 작업 하는 경우 사용 하 여 어셈블리 증명 정보를 만듭니다.If you are working in a fully trusted environment, use your assembly to create the evidence:

    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를 사용 하 여 증명 정보를 만드는 외부 소스의 출처를 알고:If you are working in a semi-trusted environment, you have code or data coming from an outside source, and you know the origin of the outside source and have a verifiable URI, use the URI to create the evidence:

    
    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)
    
  • 작업 하는 경우 부분 신뢰 환경 외부 소스에서 가져온 코드나 데이터가 없지만 외부 소스의 출처를 하거나 모르는:If you are working in a semi-trusted environment and you have code or data coming from an outside source, but you don't know the origin of the outside source, either:

    evidence 매개 변수를 null로 설정합니다.Set the evidence parameter to null. 그러면 리소스에 액세스할 수 없습니다.This allows no access to resources.

    또는-or-

    애플리케이션에서 리소스에 액세스해야 할 경우 호출자에게 증명 정보를 요청합니다.If your application requires some access to resources, request evidence from the caller.

XSLT 스타일 시트를 로드 하려면 보안 해결 프로그램을 사용 하려면To use the secure resolver to load an XSLT style sheet

  1. 올바른 권한 집합으로 XmlSecureResolver를 만듭니다.Create an XmlSecureResolver with the correct permission set.

  2. XmlSecureResolverLoad 메서드에 전달합니다.Pass the XmlSecureResolver to the Load method.

    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load("http://serverName/data/xsl/sort.xsl", null, myResolver);
    
    Dim xslt As New XslCompiledTransform()
    xslt.Load("http://serverName/data/xsl/sort.xsl", Nothing, myResolver)
    

상속자 참고

이 클래스는 상속 요청이 있습니다.This class has an inheritance demand. 상속 하려면 완전 신뢰가 필요 합니다 XmlSecureResolver 클래스입니다.Full trust is required to inherit from the XmlSecureResolver class.

생성자

XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence)

지정된 XmlSecureResolverXmlResolver를 사용하여 Evidence 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and Evidence specified.

XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet)

지정된 XmlSecureResolverXmlResolver를 사용하여 PermissionSet 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and PermissionSet specified.

XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String)

XmlSecureResolver 및 제공된 URL을 사용하여 XmlResolver 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and URL provided.

속성

Credentials Credentials Credentials Credentials

웹 요청을 인증하는 데 사용된 자격 증명을 설정합니다.Sets credentials used to authenticate web requests.

메서드

CreateEvidenceForUrl(String) CreateEvidenceForUrl(String) CreateEvidenceForUrl(String) CreateEvidenceForUrl(String)

제공된 URL을 사용하여 증명 정보를 만듭니다.Creates evidence using the supplied URL.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEntity(Uri, String, Type) GetEntity(Uri, String, Type) GetEntity(Uri, String, Type) GetEntity(Uri, String, Type)

실제 리소스가 포함된 개체로 URI를 매핑합니다.Maps a URI to an object that contains the actual resource. 이 메서드는 내부 PermissionSet에 대해 GetEntity를 호출하여 리소스를 열기 전에 PermitOnly()를 호출하여 해당 생성자에서 만들어진 XmlResolver을 일시적으로 설정합니다.This method temporarily sets the PermissionSet created in the constructor by calling PermitOnly() before calling GetEntity on the underlying XmlResolver to open the resource.

GetEntityAsync(Uri, String, Type) GetEntityAsync(Uri, String, Type) GetEntityAsync(Uri, String, Type) GetEntityAsync(Uri, String, Type)

실제 리소스가 포함된 개체로 URI를 비동기적으로 매핑합니다.Asynchronously maps a URI to an object that contains the actual resource.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
ResolveUri(Uri, String) ResolveUri(Uri, String) ResolveUri(Uri, String) ResolveUri(Uri, String)

내부 XmlResolver에 대해 ResolveUri를 호출하여 기본 및 상대 URI에서 절대 URI를 확인합니다.Resolves the absolute URI from the base and relative URIs by calling ResolveUri on the underlying XmlResolver.

SupportsType(Uri, Type) SupportsType(Uri, Type) SupportsType(Uri, Type) SupportsType(Uri, Type)

Stream이 아닌 유형을 반환하기 위해 확인자를 사용합니다.Enables the resolver to return types other than Stream.

(Inherited from XmlResolver)
ToString() ToString() ToString() ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(Inherited from Object)

적용 대상