Добрый день.
XML-файл подписывается с помощью SignedXml.
При этом в сертификате наименование организации указано в кавычках. Например: "BANK NAME".
В итоге следующий код:
KeyInfoX509Data kiData = new KeyInfoX509Data(certificate);
kiData.AddSubjectName(certificate.Subject);
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(kiData);
генерирует XML-элемент, в котором кавычки затроились:
<KeyInfo>
<X509Data>
<X509SubjectName>CN=bank.ru, OU=IT Department, O="""BANK NAME"""</X509SubjectName>
</X509Data>
</KeyInfo>
Вопрос такой. Это баг или фича? И не будет ли проблем, если подписанный файл будет обрабатываться не .NET программой?
Здравствуйте, Laplander, Вы писали:
L>L><X509SubjectName>CN=bank.ru, OU=IT Department, O="""ORIENT EXPRESS BANK"""</X509SubjectName>
L>
L>Вопрос такой. Это баг или фича? И не будет ли проблем, если подписанный файл будет обрабатываться не .NET программой?
А что
спецификация формата XML говорит? Тройные кавычки — это не экранирование кавычек в содержимом атрибута?
Здравствуйте, Mihas, Вы писали:
L>>L>><X509SubjectName>CN=bank.ru, OU=IT Department, O="""ORIENT EXPRESS BANK"""</X509SubjectName>
L>>
L>>Вопрос такой. Это баг или фича? И не будет ли проблем, если подписанный файл будет обрабатываться не .NET программой?
M>А что спецификация формата XML говорит? Тройные кавычки — это не экранирование кавычек в содержимом атрибута?
В XML кавычки экранируются
". Да и в данном случае это не значение содержимого атрибута, а текст внутри тега.
А в Distinguished Name кавычки экранируются символом
\. Или я что-то не знаю, или бага.