共用方式為


從檔案讀取時將驗證認證提供給 XmlResolver

當解析包含要讀取的 XML 資料之檔案的 URL 時,該檔案可能具有受限制的存取原則。 如果需要驗證才可存取網路資源,請使用 Credentials 屬性指定必要的認證。 如果未設定 Credentials 屬性,則認證會設為 null。

例如,假設從 Web 要求資料時需要認證以進行驗證。 如果 Web 虛擬目錄允許匿名存取,則不需要針對匿名存取設定該屬性。 不過,如果該目錄不允許匿名存取,則必須提供認證。 下列範例會建立 XmlReader,作法則是使用含有預設認證的 XmlUrlResolver 來存取 https://localhost/bookstore/inventory.xml 網站。

' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials

' Set the reader settings object to use the resolver.
settings.XmlResolver = resolver

' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("https://ServerName/data/books.xml", settings)
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Set the reader settings object to use the resolver.
settings.XmlResolver = resolver;

// Create the XmlReader object.
XmlReader reader = XmlReader.Create("https://ServerName/data/books.xml", settings);
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;

 // Set the reader settings object to use the resolver.
 settings->XmlResolver = resolver;

// Create the XmlReader object.
XmlReader^ reader = XmlReader::Create( L"https://ServerName/data/books.xml", settings );

可以將不同認證提供給不同 URI,並將其加入至認證快取。 不論 XML 的原始來源為何,這些認證都會用於檢查不同 URI 的驗證。 下列範例顯示如何將認證加入到快取中。

' Create the credentials.
Dim myCred As NetworkCredential = New NetworkCredential(UserName,SecurelyStoredPassword,Domain)
Dim myCache As CredentialCache = New CredentialCache()
myCache.Add(new Uri("https://www.contoso.com/"), "Basic", myCred)
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred)

' Set the credentials on the XmlUrlResolver object.
Dim resolver As XmlUrlResolver = New XmlUrlResolver()
resolver.Credentials = myCache

' Compile the style sheet.
Dim xslt As XslCompiledTransform = New XslCompiledTransform()
xslt.Load("https://serverName/data/xsl/order.xsl", XsltSettings.Default, resolver)

// Create the credentials.
NetworkCredential myCred = new NetworkCredential(UserName,SecurelyStoredPassword,Domain); 
CredentialCache myCache = new CredentialCache(); 
myCache.Add(new Uri("https://www.contoso.com/"), "Basic", myCred); 
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred);

// Set the credentials on the XmlUrlResolver object.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = myCache;

// Compile the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("https://serverName/data/xsl/order.xsl",XsltSettings.Default, resolver);   

請參閱

參考

NetworkCredential

CredentialCache

概念

使用 XmlResolver 解析資源

其他資源

解析由 URI 命名的外部 XML 資源

安全性和 System.Xml 應用程式