Я хотел проверить доверие к одному из файлов .exe в нашем проекте, для которого я использую C#.Почему 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» i.e.- «Trust_e_nosignature».
Ожидаемое поведение? Если да, то как его решить?
Я искал это конкретное поведение, но не нашел удовлетворительного ответа.
Это не отличается от реальной жизни. Если вы продаете свой дом кому-то, как вы можете быть уверены, что можете доверять покупателю, кто он говорит, что он есть, и контракт, который он подписывает, будет юридическим документом? Вы идете к нотариусу, вы должны выйти из дома. Нотариус здесь является эмитентом сертификата, например Verisign, выход из дома требует подключения к Интернету. –