Сборка WinSCP .NET открывает сохраненный сеанс

Как я могу использовать сборку .NET, предоставленную WinSCP, для открытия сохраненного сеанса, созданного из приложения WinSCP?


person Angelos Bousias    schedule 03.12.2013    source источник


Ответы (1)


Вы не должны этого делать. Связывание сборки с конфигурацией приложения WinSCP может вызвать массу проблем. По умолчанию сборка намеренно изолирована от приложения WinSCP.


Нет ничего, что нельзя было бы настроить с помощью класса SessionOptions. Либо используя его свойства, для базовых опций; или используя метод SessionOptions.AddRawSettings для расширенные настройки.

Простой способ: WinSCP сгенерирует код для вас.

введите здесь описание изображения


В прошлом вы могли злоупотреблять Session.DefaultConfiguration и SessionOptions.HostName, чтобы открыть сохраненный сеанс. Но Session.DefaultConfiguration устарел, начиная с WinSCP 5.8, и в конечном итоге будет удален.

person Martin Prikryl    schedule 03.12.2013
comment
Было бы неплохо, если бы вы могли объяснить, сколько проблем это может вызвать? Если я хочу использовать, например, настройки прокси, которые хранятся в файле INI, это будет лучшим решением. В противном случае мне пришлось бы читать их вручную из файла INI (предполагается, что пользователь ввел и проверил их с помощью графического интерфейса), а затем передать их как необработанные параметры. Это действительно очень некрасиво! Документация WinScp очень плохая. Многие детали не объясняются должным образом. - person Elmue; 17.04.2015
comment
Настройка параметров прокси-сервера описана здесь: winscp.net/eng/docs/rawsettings уверен, какие еще подробности вы хотите по этому поводу. Что касается неприятностей: слишком много, чтобы включать их в вопрос. - person Martin Prikryl; 20.04.2015
comment
Да я знаю этот список настроек. Но для пользователя было бы удобнее, если бы он мог ввести все настройки (например, прокси) в графическом интерфейсе и протестировать их в графическом интерфейсе, а затем в коде C # просто открыть новый сеанс SCP, передав имя сохраненного сеанса, и WinScp будет читать все настройки автоматически из INI файла. Но это не реализовано. То, что должен сделать пользователь, очень неудобно: он должен выяснить, какое имя параметра в INI, и передать их все вручную в AddRawParameter() один за другим. Было бы идеально что-то вроде: Session sess = new Session(ProfileName); - person Elmue; 21.04.2015
comment
Если это вызывает много проблем, значит, в приложении есть ошибка проектирования. Не может быть так сложно прочитать некоторые значения из файла INI. - person Elmue; 21.04.2015
comment
@Elmue Я никогда не писал, что есть проблема с чтением INI-файла. Я написал, что использование конфигурации GUI со сборкой является проблемой. Потому что вы можете непреднамеренно внести изменение конфигурации в графический интерфейс, которое сломает ваш код. Если вы возьмете из конфигурации только раздел сайта и сохраните его в отдельный INI-файл, это нормально. Я просто не думаю, что это хорошая идея - зависеть от еще одного внешнего файла. Преобразование нескольких записей INI-файла сайта в вызовы AddRawParameter выполняется просто. - person Martin Prikryl; 21.04.2015
comment
Для ВАС это может быть просто, потому что вы разработали его. Но для любого человека, плохо знакомого с WinScp, это не так. Если я открою INI-файл, то увижу триста строк, которые бьют меня! Большинство из них не имеют документов. Пример: какую запись мне нужно передать в AddRawParameter(), если я хочу включить Отказ от маскировки всех паролей SSH-1? Почему бы вам не предложить вариант new Session(SiteName), а затем позволить пользователю решить, хочет ли он использовать его или нет на свой страх и риск. Если я внесу изменение в графический интерфейс, очевидно, что это повлияет на мой код. Но это мое решение. - person Elmue; 21.04.2015
comment
Это было бы так просто: я тестирую настройки в графическом интерфейсе, а затем использую их без изменений в коде C#. Если пароль моего прокси-сервера изменился, я открываю графический интерфейс, меняю пароль, проверяю его и готово. Никакого перебора INI-записей, проб и ошибок, многократного вызова AddRawSetting, просто несколько щелчков мышью. Вы знаете принцип KISS? Держать его просто глупо. (поищите в Википедии) Не поймите меня неправильно: WinScp великолепен. Но этот AddRawParameter не является удобным для пользователя решением. - person Elmue; 21.04.2015
comment
Elmue, похоже, это интересный способ попросить поддержки или предложить функцию. Я уверен, что Мартину это должно очень понравиться. Продолжайте в том же духе! Я уверен, что вы заслужили это за все деньги, которые вам пришлось заплатить за этот компонент корпоративного уровня. - person brablc; 24.04.2015