Проверьте Java подпись SAML от C#

Если Вы не должны абсолютно использовать regex, , использование забастовка> рассматривает использование Perl текст:: Сбалансированный для удаления круглой скобки.

use Text::Balanced qw(extract_bracketed);

my ($extracted, $remainder, $prefix) = extract_bracketed( $filename, '()', '[^(]*' );

{   no warnings 'uninitialized';

    $filename = (defined $prefix or defined $remainder)
                ? $prefix . $remainder
                : $extracted;
}

можно ли думать, "Почему делают все это, когда regex добивается цели в одной строке?"

$filename =~ s/\([^}]*\)//;

текст:: Сбалансированные дескрипторы вложили круглую скобку. Так $filename = 'foo_(bar(baz)buz)).foo' будет извлечен правильно. regex базировался, решения, предлагаемые здесь, перестанут работать на этой строке. Тот остановится при первом закрытии paren, и другой съест их всех.

$filename = ~ s / ([^}] *)//; # возвращается 'foo_buz)) .foo'

$filename = ~ s / (.*)//; # возвращается 'foo_. нечто'

# текст сбалансировало нечто 'возвратов в качестве примера _). нечто'

, Если любое из regex поведений приемлемо, используйте regex - но зарегистрируйте ограничения и сделанные предположения.

6
задан John Saunders 19 May 2010 в 03:03
поделиться

2 ответа

Решил проблему с ответами в этой ветке: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/faf0b66c-294b-4d84-a19b-504dd8e81922 Мой код был очень похож на примеры из MSDN, показанные там, единственное, чего не хватало: doc.PreserveWhitespace = true при проверке.

5
ответ дан 17 December 2019 в 04:49
поделиться

Вы можете использовать классы в пространстве имен System.Security.Cryptography.Xml для проверки XML-данных, подписанных цифровой подписью, если у вас есть открытый ключ в ваше хранилище сертификатов. Некоторое время назад я проделал некоторую работу со службами федерации AD, которые также используют SAML, и, насколько я помню, после того, как я нашел нужное мне пространство имен, все остальное было довольно просто - но это достаточно давно, и детали ускользают от меня.

0
ответ дан 17 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

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