Geschrieben von: Christoph Wille
Kategorie: ASP Tricks
This printed page brought to you by AlphaSierraPapa
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.
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).
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.
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!
This printed page brought to you by AlphaSierraPapa
Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20020503.zip
Eine IP Adresse für mehrere Websites
http:/www.aspheute.com/artikel/20000801.htm
IIS, was machst du gerade?
http:/www.aspheute.com/artikel/20011204.htm
Mitlauschen bei der Browser-Webserver Kommunikation
http:/www.aspheute.com/artikel/20020305.htm
Tracing in ASP
http:/www.aspheute.com/artikel/20010423.htm
Verzeichnissicherheit mit NTFS und IIS Authentifizierung
http:/www.aspheute.com/artikel/20001109.htm
©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.