|
Hongliangさんのレスの > new Reference(Stream)コンストラクタを使うことで直接署名対象を指定することもできます。 のアドバイスによって、署名の部分については解決しました。 ありがとうございました!
具体的は変更は下記です。 // Create a reference to be signed. // 修正後▽ FileStream urifs = new FileStream(URIString, FileMode.Open); Reference reference = new Reference(urifs); // 以下は修正前 // Reference reference = new Reference(); // ここまで△
// Add the passed URI to the reference object. reference.Uri = URIString; // Add the reference to the SignedXml object. signedXml.AddReference(reference);
// Compute the signature. signedXml.ComputeSignature(Key);
// 行追加▽ urifs.Close(); // ここまで△
上記でうまく署名後のXMLが出来ましたが、新たな問題が発生してしまいました。
同じサンプルの中に署名の検証部分がありまして、そのサンプルの最後の部分 signedXml.CheckSignature(Key) の所で、同様の例外「Uri test.txt を解決できません」が発生してしまいます。 (test.txtが存在する場所をカレントディレクトリとして実行)
これはどの様に解決したら良いでしょうか。
恐らく、検証の時にも Reference(Stream) をするのだと思いますが、そのReferenceオブジェクトをどう指定したら良いのか、という観点で色々探してみましたが、自分では解決できませんでした。 ご教示の程、宜しくお願い致します。
|