.NET вопрос доставки DLL клиента - PullRequest
2 голосов
/ 02 ноября 2009

У меня есть созданная .Net DLL, которая реализует клиент WCF, который общается со службой WCF, позволяя конечному пользователю передавать данные на сервер, на котором находится служба.

Я использую эту DLL в клиентских программах, разработанных для работы, но теперь я хочу использовать эту .Net DLL на веб-странице, чтобы клиент мог быть доставлен конечному пользователю в сети.

ASP.Net обладает этой замечательной функцией, которая позволяет ссылаться на .Net DLL на веб-странице, используя шаблон тега объекта:

<object id="demolib" classid="DemoLib.dll#DemoLib.DemoClass"></object>

Это предупреждает клиентскую среду выполнения о том, что в .Net DLL доступны определенные функции (DemoLib.dll в приведенном выше коде), которые могут отсутствовать на клиентском компьютере. Если запрошенная функциональность не существует, DLL передается клиенту и настраивается в GAC клиента для использования веб-страницей.

Я заставил его работать локально, а также удаленно в среде полного доверия, без установщика. DLL доставляется через веб-страницу и без проблем устанавливается в GAC для конечного пользователя.

Проблемы возникают, когда я пытаюсь доставить DLL за пределы полного доверия. Я не хочу, чтобы конечные пользователи устанавливали сайт, к которому они подключаются, на полное доверие, чтобы получить доступ к DLL. У меня нет проблем со строгим присвоением имен и подписи .Net DLL с действующим сертификатом. Доверие к этой DLL должно быть неявным, но, похоже, это не так.

Я считаю, что должен быть способ, позволяющий пользователю авторизовать доставку и использование DLL, если они того пожелают, но я не смог смоделировать такую ​​доставку без сбоев.

Тогда возникает вопрос: какую стратегию я должен использовать, чтобы позволить пользователю авторизовать доставку и функционирование DLL с помощью шаблона объекта выше, не вынуждая его установить it (OneClick, MSI и т. Д.)?

1 Ответ

1 голос
/ 02 ноября 2009

Итак, вы хотите тихо доставить сборку .NET на клиентскую машину вне пределов полного доверия, и она взаимодействует в фоновом режиме со службой WCF? Это именно то, что система доверия предназначена для предотвращения.

Я думаю, вам следует рассмотреть возможность развертывания OneClick. Пользователи должны знать, когда они устанавливают программное обеспечение, которое взаимодействует с облаком.

...