我想檢查我使用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);
filename - 只是.exe文件的路徑。
僅當機器至少連接到互聯網時,以上代碼中提到的WinVerifyTrust()纔會返回「WinVerifyTrustResult.Success」。
然而,在新鮮的機器上,它返回「0x800b0100」,即 - 「Trust_e_nosignature」。
預期行爲?如果是,那麼如何解決它?
我搜索了這個特定的行爲,但沒有找到任何滿意的答案。
這與現實生活沒有任何區別。如果您將房屋出售給某人,您如何確保您可以相信買方是他自稱的人,並且他簽署的合同將成爲法律文件?你去公證處,你必須離開家。這裏的公證人是像Verisign這樣的證書發行人,出門需要互聯網連接。 –