XmlSecureResolver コンストラクター
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
XmlSecureResolver クラスの新しいインスタンスを初期化します。
オーバーロード
XmlSecureResolver(XmlResolver, PermissionSet) |
XmlResolver と PermissionSet を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。 |
XmlSecureResolver(XmlResolver, Evidence) |
XmlResolver と Evidence を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。 |
XmlSecureResolver(XmlResolver, String) |
XmlResolver と URL を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。 |
注釈
3 つのコンストラクターは、次の 3 種類のアクセス制限を提供します。
コンストラクターは XmlSecureResolver(XmlResolver, String) 、URL を使用してアクセスを制限します。
コンストラクターは XmlSecureResolver(XmlResolver, PermissionSet) 、アクセス許可セットを使用してアクセスを制限します。
コンストラクターは XmlSecureResolver(XmlResolver, Evidence) 、証拠を使用してアクセスを制限します。
これらの種類の制限の例については、コンストラクターのリファレンス トピックを参照してください。
XmlSecureResolver(XmlResolver, PermissionSet)
XmlResolver と PermissionSet を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。
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)
XmlResolver と Evidence を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。
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)
XmlResolver と URL を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。
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
基になる XmlResolver に適用される PermissionSet の作成に使用される URL。 XmlSecureResolver は、基になる XmlResolver で GetEntity(Uri, String, Type) を呼び出す前に、作成された PermissionSet で PermitOnly() を呼び出します。
例
この例では、コンストラクターを 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 で使用される場合に動作が異なる場合があります。 これらの違いの 1 つは、URL に基づく証拠がある場合 (つまり、メソッドまたはコンストラクターを使用する場合) にクラスにCreateEvidenceForUrl影響XmlSecureResolverしますXmlSecureResolver(XmlResolver, String)。 SQL Server統合 CLR のポリシー解決メカニズムでは、その情報はUrlZone使用されません。 代わりに、アセンブリの読み込み時にサーバーが追加する GUID に基づいてアクセス許可を付与します。 SQL Server統合 CLR で使用XmlSecureResolverする場合は、指定したを使用して必要な証拠を直接指定しますPermissionSet。