Подпись кода .NET сборок перед началом загрузки в веб-браузер клиента - PullRequest
1 голос
/ 11 ноября 2010

Я использую signtool.exe для цифровой подписи автоматически сгенерированного загружаемого контента из C #, вызывая командную строку, а затем направляю файл в браузер клиента. Проблема в том, что хотя подпись в Интернете выглядит нормально, загруженному файлу, похоже, не хватает ее сегмента. Если вы щелкнете правой кнопкой мыши на сгенерированном файле на сервере, вы увидите отличную подпись, и если вы просматриваете сертификат, он говорит, что «эта цифровая подпись в порядке».

Загруженный файл выглядит иначе. Хотя он на 15 байт меньше, он не поврежден, но хотя имя проблемы не повреждено, оно говорит, что эта цифровая подпись недействительна.

Что-то происходит во время транзита? Я использую этот код для подписи контента:

Response.Clear();<br/> Response.ContentType = "application/exe";<br/> Response.AddHeader("content-disposition", "filename=" + filename);<br/> Response.AddHeader("Content-Length", fi.Length.ToString());<br/> Response.TransmitFile(filePath);

Заранее спасибо,
Франк.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Является ли ответ, отправленный клиенту в заголовках, правильной длины или неправильным (коротким)?Используйте Fiddler или Firebug для проверки.

Если это правильно, но клиент не получает данные, попробуйте Reponse.Flush () после TransmitFile.Я думаю, что это, вероятно, просто суеверие, но многие люди, кажется, делают это.

0 голосов
/ 11 ноября 2010

Попробуйте обновить FileInfo fi перед чтением длины для заголовка Content-Length, возможно, кешируется старая длина до подписания или около того.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...