Strona 2 z 2

Re: Błąd podczas logowanie - ZalogujPodpisem

: pn lis 05, 2018 11:34 am
autor: MichalC
W końcu udało się rozwiązać problemy.

Zebrałem uwagi dla .NETowców

W skrócie:
1. Przede wszystkim EZLA wymaga prefiksu "ds" w Signature i elementach podrzędnych!!! Straszne ale prawdziwe. Nigdy bym na to nie wpadł. Ktoś najwyraźniej łamie standard zapominając o domyślnych przestrzeniach nazw...
2. Signature i SignedInfo muszą mieć wypełniony atrybut "Id"
3. Trzeba użyć "XmlDsigExcC14NTransformUrl" czyli "http://www.w3.org/2001/10/xml-exc-c14n#" zamiast XmlDsigC14NTransformUrl aby uniknąć błędu "105. a) KIR: Negatively verified: Invalid hash in the Reference object in XML signature"
4. Aby umożliwić poprawną obsługę XAdES trzeba w SignedXml nadpisać metodę GetIdElement i poprawić wyszukiwanie elementu po Id

Ad 1.
Uzyskanie "ds" przy pomocy SignedXml w .NET jest niewątpliwym wyzwaniem. Na szczęście wykonywalnym. Szkoda tylko, że trzeba się tyle napracować, bo komuś się nie chciało trzymać standardu.

Podziękowania dla p. Renaty Wiśniewskiej za cierpliwość.

Re: Błąd podczas logowanie - ZalogujPodpisem

: wt lis 06, 2018 8:25 pm
autor: Krzysztof Kocunik
Witam.

Też mam błąd 105, ale tylko przy logowaniu certyfikatem ZUS-owskim.
Na jakiej podstawie jest generowany atrybut "Id" w Signature i SignedInfo?

Pozdrawiam

Re: Błąd podczas logowanie - ZalogujPodpisem

: śr lis 07, 2018 8:41 am
autor: MichalC
Krzysztof Kocunik pisze:
wt lis 06, 2018 8:25 pm
Na jakiej podstawie jest generowany atrybut "Id" w Signature i SignedInfo?
Na podstawie własnego pomysłu na unikalny identyfikator.
Przykładowo może to być oparte na czasie:

Kod: Zaznacz cały

signedXml.Signature.Id = "Signature_" + DateTime.Now.Ticks.ToString();
signedXml.SignedInfo.Id = "SignedInfo_" + DateTime.Now.Ticks.ToString();

Re: Błąd podczas logowanie - ZalogujPodpisem

: wt lis 13, 2018 11:52 am
autor: Krzysztof Kocunik
Dziękuję za odpowiedź.
Pozdrawiam.