C#を使用しているプロジェクトで、.exeファイルの信頼性をチェックしたかったのです。インターネットに接続されていないマシンでWinVerifyTrust()が失敗するのはなぜですか?
私が言及している - ここでhttp://pinvoke.net/default.aspx/wintrust/WinVerifyTrust.html
は私のコードスニペットです。
WinTrustData wtd = new WinTrustData(filename);
Guid guidAction = new Guid(WINTRUST_ACTION_GENERIC_VERIFY_V2);
WinVerifyTrustResult result = WinVerifyTrust(INVALID_HANDLE_VALUE, guidAction, wtd);
bool valid = (result == WinVerifyTrustResult.Success);
ファイル名 - .exeファイルのパスです。
上記のコードに記載されているWinVerifyTrust()は、マシンが少なくとも1回インターネットに接続されている場合にのみ "WinVerifyTrustResult.Success"を返します。
ただし、新しいマシンでは「0x800b0100」つまり「Trust_e_nosignature」を返します。
予想される動作ですか?はいの場合はどのように解決するのですか?
この特定の動作を検索しましたが、満足のいく回答が見つかりませんでした。
これは実際の生活と変わらないものではありません。あなたが誰かにあなたの家を売るならば、あなたはバイヤーが彼が言っている人であると信じることができますし、彼が署名した契約は法的文書になるでしょうか?あなたは公証人に行く、あなたは家から出なければならない。ここの公証人はVerisignのような証明書の発行者です。家から出るにはインターネット接続が必要です。 –