.NET префикс XML со знаком

Убедитесь, что устройство рутовано или нет.
Если устройство рутировано, запросите разрешение root и вы можете перезагрузить устройство.

Здесь , как проверить, доступен ли root-доступ или нет.

11
задан Perception 5 August 2011 в 15:08
поделиться

2 ответа

В первую очередь, действительно нет никакого серьезного основания сделать это. Две формы функционально эквивалентны. Любой процессор XML хорошего поведения обработает их абсолютно тождественно. Таким образом, если Вы не пытаетесь говорить с приложением, которое правильно не реализует пространства имен XML, это лучше (IMO) только для оставления формы по умолчанию в покое. (И даже в этом случае, это было бы лучше, если вообще возможный, для исправления дефектного приложения вместо этого.)

Тем не менее можно вручную установить префикс на XmlElement, который возвращается SignedXml. GetXml () и его дочерние элементы с помощью XPath как это:

XmlElement signature = signedXml.GetXml();
foreach (XmlNode node in signature.SelectNodes(
    "descendant-or-self::*[namespace-uri()='http://www.w3.org/2000/09/xmldsig#']"))
{
    node.Prefix = "ds";
}
7
ответ дан 3 December 2019 в 07:39
поделиться

Это не может быть сделано. При изменении XML после того, как он был подписан, он не может быть проверенным, который имел место в примере выше. IMO это - дефект в реализации цифровой подписи MSFT, с которой необходимо будет жить.

Много людей скажет, что нет никакой причины сделать это, и они технически корректны. Но когда Вы имеете дело с огромным поставщиком (т.е. региональное правительство или банк), удача, заставляя их изменить его на их конце. Большинство ссылочных реализаций включает его.

ОБНОВЛЕНИЕ: подпись подписывает все в элементе SignedInfo, поэтому если Вы идете, обновляя тот элемент после факта, затем Подпись больше не действительна. Вы "вмешались" с сообщением.

8
ответ дан 3 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: