Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Show me the source - Includes aufgelöst

Geschrieben von: Christoph Wille
Kategorie: ASP Tricks

Includes sind sehr praktisch, wenn man Funktionalität in ASP Projekten gezielt wiederverwertbar machen möchte. Der damit erreichte Vorteil der Modularisierung hat einen "Nachteil" - möchte man sich den gesamten Code einer ASP Seite ansehen, wie er von der ASP Engine nach dem Expandieren der Includes ausgeführt wird, dann gibt es zwei Wege: manuell zusammenkopieren, was bei selbst verschachtelten Includes lästig wird, oder mit einem Winkelzug mit dem ISAPI Filter für SSI (server-side includes) automatisch anzeigen.

Die erste Variante ist definitiv nicht zu empfehlen, außer man hat höchstens zwei oder drei Includes in Verwendung (und will nicht regelmäßig verschiedenste Dateien eines Projektes betrachten). Werden es mehr oder die Sourcereviews häufiger, dann empfiehlt es sich, den ISAPI Filter für server-side Includes zweckzuentfremden.

Bei dieser Methode gäbe es wieder zwei Varianten: die ASP Dateiendung (temporär) auf den ISAPI Filter zuweisen, oder eine zweite Site einrichten, die generell ASP auf diesen Filter gemappt hat, und nur zum Sourcecodelesen dient. Der heutige Artikel beschäftigt sich mit der zweiten Variante, da diese den Vorteil hat, sicherer zu sein: man zerstört nicht das Setup der echten Site, und man kann die zweite Site besser absichern. Allerdings gibt es einen Nachteil: es ist mehr Arbeit, die "Sourcesite" parallel zur echten Site zu führen.

Einrichten der Site

Ich habe ein Kochrezept zusammengestellt, um eine Site zu erstellen, die nur dem Lesen von Sourcecode dient. Der erste Schritt ist das Erstellen einer neuen Site, bevorzugt auf einem anderen Port als 80 - ich habe hier 8181 gewählt:

Diese Site - STM Site - spiegelt die Hauptsite Default Web Site:

Wichtig: hat man virtuelle Verzeichnisse in der Hauptsite, so muß man diese auch in der "Sourcesite" anlegen. Weil ich gerade von Source rede - wie kommt man denn nun an den expandierten Source einer Datei, die mehrere Includes enhält? Nun, dazu muß man die Dateiendung ASP auf den ssinc.dll ISAPI Filter ummappen (unter Home Directory/Configuration):

Aus Sicherheitsgründen habe ich alle unnötigen Mappings bis auf .asp und .asa herausgelöscht. Danach habe ich das Mapping editiert:

Alles, was man tun muß, ist per Browse den Filter von asp.dll auf ssinc.dll umzustellen (beide liegen im gleichen Verzeichnis). Die gleiche Prozedur auch noch für die .asa Erweiterung, daß man sich auch die global.asa's expandiert ansehen kann.

Eine freiwillige Sicherungsmaßnahme ist diese:

Damit schränkt man ein, wer Zugriff auf diese Site haben soll. Im Entwicklungsstadium ist es zwar nicht so "heiß", allerdings tut dieser geringe Mehraufwand sicherlich nicht "weh". Es soll ja auch weniger vertrauenswürdige Kollegen im Firmennetzwerk geben, die keinen Zugriff auf den Code bekommen sollen (nicht einmal zufällig).

Show me the source

Nach dieser Einrichtungsarbeit kann man schon auf seine Codeseiten surfen. Allerdings wird in den meisten aller Fälle nichts oder HTML Fragmente angezeigt. Rechte Maustaste und View Source sind angesagt:

Und damit hat man dann den expandierten ASP Sourcecode vor sich, nachdem alle Includes eingebaut wurden. Wer sich übrigens fragt, ob Include-Anweisungen in Includedateien ebenfalls expandiert werden: ja. Im Dowload ist ein kleines Beispiel für den Selbstversuch mit dabei.

Schlußbemerkung

Es wird sicherlich nicht oft vorkommen, daß man auf diese Technik zurückgreifen muß. Aber manchmal wird ein Fehler nur im Gesamtkontext sichtbar, beziehungsweise zwingen Dokumentationsrichtlinien dazu, den gesamten Code einer Seite in die Projektdokumentation aufzunehmen - und dann ist diese Technick sehr nützlich!

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

Eine IP Adresse für mehrere Websites
IIS, was machst du gerade?
Mitlauschen bei der Browser-Webserver Kommunikation
Tracing in ASP
Verzeichnissicherheit mit NTFS und IIS Authentifizierung

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.