Запутанные классы прокси WCF - PullRequest
0 голосов
/ 14 марта 2012

Как скрыть прокси-классы WCF с помощью Dotfuscator?Я скачал Dotfuscator Pro Edition Trial с их сайта.Я запутал свой файл app.exe, все было хорошо запутано, но прокси-классов WCF не было.(Я ILDASMed exe).

Классы прокси WCF выдают структуру моего приложения. Есть ли какие-либо настройки, которые мне не хватает в приложении Dotfuscator?

Есть ли лучший способ скрыть WCFсервис прокси классов?

1 Ответ

1 голос
/ 16 марта 2012

Так или иначе, WCF должен иметь возможность связывать элементы в контракте данных вашей службы с прокси-классами вашего клиента.Как правило, мало смысла скрывать прокси-классы и их члены, но если вы хотите скрыть их, вы можете явно указать имя типов и их членов, используя параметр Name атрибутов [DataContract] или [DataMember](например. [DataMember Name="ID"]).Сделав это, вы можете отключить встроенное правило «Типы и поля, помеченные как сериализуемые» на вкладке «Переименовать -> Встроенные правила» и убедиться, что в «Переименовать -> Параметры» установлен флажок «Совместимость с сериализатором XML».вкладка.Предостережение в этом подходе состоит в том, что имена сериализованных свойств все еще включены в ваш код (в атрибутах) и все еще отправляются по проводам.

Если вам требуется дополнительная защита и вы можете контролировать обасервис и клиент, лучший, но более обременительный вариант может заключаться в том, чтобы заключить контракт на обслуживание в отдельной сборке и обработать его с помощью Dotfuscator.Снова отключите встроенное правило «Типы и поля, помеченные как сериализуемые» на вкладке «Переименовать -> Встроенные правила» и убедитесь, что на вкладке «Переименовать -> Параметры» установлен флажок «Совместимость с сериализатором XML».Теперь ссылайтесь на полученную DLL контракта на обслуживание из вашей службы и из вашего клиентского приложения.При таком подходе компромисс заключается в том, что все участники договора будут иметь запутанные имена (например, «a»), и вам придется ссылаться на них как таковые в коде вашей службы и клиентского приложения.Вы можете просмотреть файл карты, который создает Dotfuscator, чтобы разобраться с переименованными именами.

...