Я архивирую приложение WPF, используя Руководство по применению композитных материалов PnP. Приложение будет выполняться локально внутри нашей интрасети.Динамически загружать DLL из общего сетевого ресурса, недоступного для просмотра на клиентском ПК - WCF?
Модули будут загружаться динамически на основе ролей пользователей. Поэтому модули должны быть доступны для приложения через сетевой ресурс, доступ к которому возможен с клиентских компьютеров.
Что бы я хотел сделать, так это хранить все модули .dll в недоступном для персонала месте, но при этом иметь возможность предоставлять их в составное приложение по требованию и когда текущий пользователь аутентифицируется для использования этого модуля ,
Моя мысль - загрузить DLL-файлы, передав их из службы WCF, где служба WCF (на сервере) может обращаться к репозиторию .dll, но ни одна из клиентских машин не имеет к ней доступа. Аутентификация также будет обрабатываться службой.
Я подозреваю, что, возможно, я как бы преувеличиваю.
Это что-то, что можно сделать с простой конфигурацией файловой системы и программным путем передавать учетные данные при доступе к общей папке? Если я это сделаю, доступ будет предоставлен только вызывающему приложению или теперь пользователь, входивший в систему, сможет перейти к общей папке?
Реально ли это проблема с MEF или любым другим проектом, о котором вы знаете? (я надеюсь, что это не LMGTFY достойные - Я не был в состоянии придумать что-нибудь.)
Отсутствие проблем с лицензированием. Что касается входа в систему и выхода из нее с использованием одного и того же экземпляра, я предполагаю, что это означает доступ к DLL через сеть? Я имел в виду фактически копирование .dll на клиентскую машину, прежде чем загружать его. Кроме того, мне не нужно будет выгружать какие-либо сборки после запуска. Из моего чтения сообщения, с которым вы связались, я прав, думая, что я могу скопировать .dll под ApplicationBase оболочки составного приложения, а затем загрузить в «Load context»? – Jay
Привет, о последнем вопросе: под 'ApplicationBase' и внутри' PrivateBinPaths'. Я не могу понять, почему вы не позволите пользователю получить доступ к DLL - может ли DLL использоваться без загрузки в ваш APP? Выполняете ли вы проверки безопасности только при загрузке DLL? Вы должны выполнить всю проверку безопасности на сервере. Я думаю, дело в том, что, поскольку запрос ограничения доступа к коду немного странный, вы должны указать причину этого, поэтому, возможно, могут быть предоставлены более эффективные решения. Даже если нет лучшего решения, я смогу перестать гадать :-) –