コード例 #1
0
        private static XmlDocument GetMetadataformEntityID(string entityID)
        {
            XmlDocument adfsMetaData = new XmlDocument();

            adfsMetaData.LoadXml(Settings.Default.ADFSMetaData);

            MetadataDocument metadataDocument = MetadataDocument.Instance();

            if (!metadataDocument.SignatureValid)
            {
                throw new Exception("Metadata Signature invalid");
            }


            lock (metadataDocument.ReadLock)
            {
                var     xmlNamespaceManager = AdfsNamespaceManager(metadataDocument.Document);
                string  xpathTemplate       = Settings.Default.XPath2Copy;
                string  xpath = String.Format(xpathTemplate, entityID);
                var     entitiesDescriptorNode = metadataDocument.Document.SelectSingleNode(xpath, xmlNamespaceManager);
                XmlNode copiedNode             = adfsMetaData.ImportNode(entitiesDescriptorNode, true);
                adfsMetaData.DocumentElement.AppendChild(copiedNode);
            }

            return(adfsMetaData);
        }