XmlSecureResolver Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса XmlSecureResolver.
Перегрузки
| Имя | Описание |
|---|---|
| XmlSecureResolver(XmlResolver, PermissionSet) |
Инициализирует новый экземпляр XmlSecureResolver класса с указанным и XmlResolver заданнымPermissionSet. |
| XmlSecureResolver(XmlResolver, Evidence) |
Инициализирует новый экземпляр XmlSecureResolver класса с указанным и XmlResolver заданнымEvidence. |
| XmlSecureResolver(XmlResolver, String) |
Инициализирует новый экземпляр XmlSecureResolver класса с предоставленным URL-адресом и указанным url-адресом XmlResolver . |
Комментарии
Три конструктора предоставляют три типа ограничений доступа:
Конструктор XmlSecureResolver(XmlResolver, String) ограничивает доступ с помощью URL-адреса.
Конструктор XmlSecureResolver(XmlResolver, PermissionSet) ограничивает доступ с помощью набора разрешений.
Конструктор XmlSecureResolver(XmlResolver, Evidence) ограничивает доступ с помощью доказательств.
Примеры этих ограничений см. в справочных разделах конструктора.
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 объект с помощью настраиваемого набора разрешений.
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.cs
- Исходный код:
- XmlSecureResolver.cs
- Исходный код:
- XmlSecureResolver.cs
- Исходный код:
- XmlSecureResolver.cs
- Исходный код:
- XmlSecureResolver.cs
Инициализирует новый экземпляр XmlSecureResolver класса с предоставленным URL-адресом и указанным 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
Сопоставитель XML, который упакован в оболочку XmlSecureResolver.
- securityUrl
- String
URL-адрес, используемый для создания PermissionSet , который будет применен к базовому XmlResolverобъекту. Вызовы XmlSecureResolverPermitOnly() созданного 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/")
Комментарии
Important
Существуют различия в инфраструктуре безопасности кода, работающего в среде 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.