XmlSecureResolver Конструкторы

Определение

Инициализирует новый экземпляр класса XmlSecureResolver.

Перегрузки

XmlSecureResolver(XmlResolver, PermissionSet)

Инициализирует новый экземпляр класса XmlSecureResolver с заданными объектами XmlResolver и PermissionSet.

XmlSecureResolver(XmlResolver, Evidence)

Инициализирует новый экземпляр класса XmlSecureResolver с заданными объектами XmlResolver и Evidence.

XmlSecureResolver(XmlResolver, String)

Инициализирует новый экземпляр класса XmlSecureResolver с указанными объектом XmlResolver и URL-адресом.

Комментарии

Три конструктора предоставляют три типа ограничений доступа:

Примеры этих типов ограничений см. в справочных разделах конструктора.

XmlSecureResolver(XmlResolver, PermissionSet)

Инициализирует новый экземпляр класса XmlSecureResolver с заданными объектами XmlResolver и 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

Сопоставитель XML, для которого XmlSecureResolver создает программу-оболочку.

permissionSet
PermissionSet

Набор разрешений, применяемый к базовому объекту XmlResolver. XmlSecureResolver вызывает метод PermitOnly() для набора разрешений перед вызовом метода GetEntity(Uri, String, Type) для базового сопоставителя XML.

Примеры

В следующем примере создается 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)

Инициализирует новый экземпляр класса XmlSecureResolver с заданными объектами XmlResolver и 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

Сопоставитель XML, для которого XmlSecureResolver создает программу-оболочку.

evidence
Evidence

Свидетельство, используемое для создания объекта PermissionSet, который будет применен к базовому объекту XmlResolver. XmlSecureResolver вызывает метод PermitOnly() для созданного объекта PermissionSet перед вызовом метода GetEntity(Uri, String, Type) для базового объекта XmlResolver.

Комментарии

Ниже приведены некоторые возможные сценарии и тип доказательств для каждого сценария:

  • Если вы работаете в полностью доверенной среде, создайте доказательства с помощью сборки:

    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 с указанными объектом XmlResolver и URL-адресом.

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

Сопоставитель XML, для которого XmlSecureResolver создает программу-оболочку.

securityUrl
String

URL-адрес, используемый для создания объекта PermissionSet, который будет применен к базовому объекту XmlResolver. 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/")

Комментарии

Важно!

Существуют различия в инфраструктуре безопасности для кода, выполняемого в среде CLR платформа .NET Framework, и кода, выполняемого в среде CLR, интегрированной в Microsoft SQL Server 2005. Это может привести к случаям, когда код, разработанный для среды CLR платформа .NET Framework, работает по-разному при использовании в интегрированной среде CLR SQL Server. Одно из этих различий влияет на XmlSecureResolver класс, если у вас есть доказательства, основанные на URL-адресе (то есть при использовании CreateEvidenceForUrl метода или конструктора XmlSecureResolver(XmlResolver, String) ). Механизм разрешения политик интегрированной среды CLR SQL Server не использует Url сведения или Zone сведения. Вместо этого он предоставляет разрешения на основе GUID, добавляемого сервером при загрузке сборок. При использовании интегрированной XmlSecureResolver среды CLR в SQL Server предоставьте все необходимые доказательства непосредственно с помощью указанногоPermissionSet.

Применяется к