Frage

Wie verschleiere ich WCF-Proxy-Klassen mit Dotfuscator?Ich habe die Testversion der Dotfuscator Pro Edition von ihrer Website heruntergeladen.Ich habe meine App verschleiert.exe-Datei, alles war schön verschleiert, aber WCF-Proxy-Klassen nicht.(Ich habe die exe gelöscht).

Die WCF-Proxy-Klassen geben Struktur von mir preis application.Is gibt es eine Einstellung, die mir in der Dotfuscator-Anwendung fehlt?

Gibt es eine bessere Möglichkeit, WCF-Dienst-Proxy-Klassen auszublenden?

War es hilfreich?

Lösung

Auf die eine oder andere Weise muss WCF in der Lage sein, Elemente im Datenvertrag Ihres Dienstes an die Proxy-Klassen Ihres Clients zu binden.Es gibt normalerweise wenig Wert, die Proxy-Klassen und ihre Mitglieder zu verschleiern, aber wenn Sie sie verschleiern möchten, können Sie den Namen der Typen und ihrer Mitglieder explizit mit dem festlegen Name parameter des [DataContract] oder [DataMember] attribute (zB. [DataMember Name="ID"]).Sobald Sie dies getan haben, können Sie die integrierte Regel "Typen und Felder, die als serialisierbar markiert sind" auf der Registerkarte Umbenennen -> Integrierte Regeln deaktivieren und sicherstellen, dass auf der Registerkarte Umbenennen -> Optionen die Option "Kompatibilität mit XML-Serializer" aktiviert ist.Die Einschränkung bei diesem Ansatz besteht darin, dass die Namen der serialisierten Eigenschaften weiterhin in Ihrem Code (in den Attributen) enthalten sind und weiterhin über die Leitung gesendet werden.

Wenn Sie mehr Schutz benötigen und sowohl den Service als auch den Client kontrollieren können, besteht eine bessere, aber umständlichere Option darin, Ihren Servicevertrag in eine eigene Assembly zu stellen und diese mit Dotfuscator zu verarbeiten.Deaktivieren Sie erneut die integrierte Regel "Typen und Felder, die als serialisierbar markiert sind" auf der Registerkarte Umbenennen -> Integrierte Regeln und stellen Sie sicher, dass auf der Registerkarte Umbenennen -> Optionen die Option "Kompatibilität mit XML-Serializer" aktiviert ist.Verweisen Sie nun sowohl von Ihrem Dienst als auch von Ihrer Clientanwendung auf die resultierende Servicevertrags-DLL.Der Nachteil bei diesem Ansatz besteht darin, dass die Vertragsmitglieder alle verschleierte Namen haben (z. B.)."a") und Sie müssen sie in Ihrem Dienst- und Clientanwendungscode als solche referenzieren.Sie können die von Dotfuscator erstellte Kartendatei untersuchen, um die umbenannten Namen zu verstehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top