在输出C#之前解密XML中包含的字符串

时间:2016-09-09 14:07:06

标签: c# xml xslt encryption

好的,我有一个xml文档,它通过c#函数返回并通过XSLT输出。在XML文档中,有一个加密的字符串,我需要在输出之前解密。

基本上,我需要通过解密函数运行“encryptedstring”才能获得真正的价值。

XML结构:

<root>
<order encryptedstring="676696969hjhig">
</root>

输出功能:

XmlDocument xmlOrders = Data_Functions.Get_All_Orders();
xmlOutput.DocumentContent = xmlOrders.OuterXml;

我假设我需要遍历XML文档,获取每个“encryptedstring”的值,通过解密函数运行该值并将其重新注入xml文档但不确定最佳方式这一点。

解密必须在c#中的代码隐藏中完成,方法是将字符串传递给decryptString();

1 个答案:

答案 0 :(得分:0)

在@momar的问题建议的指导下,这可以通过以下方式解决......

XmlNodeList aNodes = xmlOrders.SelectNodes("//root/order");

        foreach (XmlNode aNode in aNodes)
        {
            XmlAttribute ccAttribute = aNode.Attributes["encryptedstring"];

            string attValue= ccAttribute.Value;
            string encKey = ConfigurationManager.AppSettings["EncryptionKey"];
            string decrypt = Crypto.DecryptStringAES(attValue, encKey);

            ccAttribute.Value = deencrypt;

        }
xmlOutput.DocumentContent = xmlOrders.OuterXml;