ASP.NET Tips Tricks

Document Sample
scope of work template
							   ASP.NET
 Tips & Tricks
        Uwe Baumann
    Technologieberater
      Developer Group
       Microsoft GmbH
 uwebaum@microsoft.com
http://www.uwebaumann.de
Was Sie erwartet
   Nützliche Tips für den ASP.NET-Alltag
       Logon und Authentifizierung
       File Upload und Download
       Datenübergabe zwischen Webseiten
       Zentrale Fehlerbehandlung
       Webseiten-Dokumentvorlagen (Templates)
       Automatische URL-Umleitung (Redirection)
   Einige komplett nutzlose, aber irgendwie
    interessante Informationen.
Nutzloses Wissen – Teil 1
Die Durchschnittsgeschwindigkeit eines
   Schmetterlings beträgt 32 km/h.
Logon und Authentifizierung
   Problem
        Nur authentifizierte User(-gruppen) sollen
         auf bestimmte Seiten zugreifen dürfen
   Aufgaben
    1.   Logon-Seite erstellen
    2.   Authentifizierung der User gegen beliebige
         Datenbank bzw. andere Quellen
    3.   Betreffende Seiten absichern
Logon und Authentifizierung
   Tips & Tricks
       Rollenbasierte Zugriffskontrolle nicht "aus
        der Box" möglich
       Möglich durch Erstellung und Zuweisen
        eines eigenen GenericPrincipal im
        Authenticate-Event
   GenericIdentity-Objekt
       Speichert User-Identität (Name)
   GenericPrincipal-Objekt
       Speichert Identität und Rollen
demo

  Forms
  Authentifizierung
  Democode: FormsAuth.sln
Nutzloses Wissen – Teil 2
Ungarn exportiert mehr Nilpferde als jedes
  andere europäische Land.
File Upload und Download
   Problem
        User sollen Dateien auf dem Webserver in
         einer Datenbank ablegen können
   Aufgaben
    1.   Upload-Seite erstellen
    2.   Daten aus Upload in SQL Server leiten
    3.   Download-Seite erstellen
    4.   Daten aus SQL Server zurück an Browser
         schicken
File Upload und Download
   Tips & Tricks
       FORM enctype="multipart/form-data"
        einfügen
       INPUT type="file" runat="server" einfügen
   PostedFile-Objekt
       Eigenschaft des Input-Controls
       Eigenschaften des hochgeladenen Files
        (Größe, MIME-Type, Name)
       Abspeichern über SaveAs-Methode oder
        "manuell" über InputStream
demo

  Upload / Download
  - Directory
  - SQL Server
  Democode: UploadDownload.sln
Nutzloses Wissen – Teil 3
Der kürzeste burmesische
   Familienname ist "H".
Datenübergabe zwischen Webseiten

   Problem
        Ein Eingabeformular soll über mehrere
         Seiten gehen (Wizard) und Daten aus der
         vorigen Seite übernehmen
   Aufgaben
    1.   Daten in der aktuellen Instanz der
         Seitenklasse speichern
    2.   Daten in der Folgeseite über das Context-
         Objekt auslesen
Datenübergabe zwischen Webseiten

   Tips & Tricks
       Server.Transfer hält die Anfrage auf dem
        selben Server
       Zugriff auf die Instanzvariablen der vorigen
        Seite ist in Form_Load möglich
   Context-Objekt
       Handler-Eigenschaft enthält Referenz auf
        die Instanz der letzten Seitenklasse
       Cast auf die Seitenklasse nötig
Das ASP.NET Prinzip
                                                                           INETINFO.EXE

POST /site/form1.aspx                                 HTTP Request
.....
                                                                             ASPNET_ISAPI.DLL
HTTP 1.1 200 OK                                        HTTP Response
.....




form1.aspx                                        form1_aspx.dll           ASPNET_WP.EXE
<%@ WebService language="c#" class=
using System.Web.Services;

[WebService(Description="Provides a v
public class Simple
{    [WebMethod(Description=„
Returns a nice greeting")]
                                                                                  Page Class
public string Hello()
   {
      return "Hello";
                                                      Assembly
  }
}




                                        Kompilieren         Instanzieren
demo

  Context Object
  verwenden
Nutzloses Wissen – Teil 4
Harvey Kennedy erfand die Schnürsenkel
  und wurde dadurch reich.
Zentrale Fehlerbehandlung
   Problem
        Fehler, die irgendwo in der Web-
         Applikation auftreten, sollen zentral
         registriert bzw. behandelt werden
        Ein Eintrag in das Applikationslog soll
         erstellt werden
   Aufgaben
    1.   Fehlerbehandlungscode in Global_asax
         schreiben, Informationen extrahieren
    2.   System.Diagnostics-Klassen verwenden,
         um einen Logeintrag zu erstellen
Zentrale Fehlerbehandlung
   Tips & Tricks
       Die abgefangene Exception ist immer
        "HTTPUnhandledException", die
        "wirkliche" Exception steht in
        InnerException
   EventLog-Objekt
       Alle Funktionen zum Umgang mit
        Eventlogs
demo

  ASP.NET Logfiles
  Democode: CentralExceptions.sln
Nutzloses Wissen – Teil 5
Der Mensch blinzelt normalerweise 25000
  Mal pro Tag.
Seitenvorlagen (Templates)
   Problem
        Eine Seitenvorlage soll HTML enthalten,
         das auf jeder Seite vorkommt
   Lösung
    1.   Seitenvorlage (Template) erstellen
    2.   Render-Methode überschreiben
    3.   Content-Seiten von Master-Seite ableiten
Seitenvorlagen (Templates)
   Tips & Tricks
       Render-Methode überschreiben ist einfach
        zu realisieren und sehr performant, aber
        etwas schlecht zu warten (kein WYSWYG)
       Alternative: Header und Footer als
        Controls erstellen, in OnPreRender-Event
        einfügen (WYSWYG über Visual Studio)
demo

  ASP.NET Templates
  Democode: SimpleTemplates.sln
Nutzloses Wissen – Teil 6
Gold ist das 16. seltenste Element auf der
  Welt.
Automatische URL-Umleitung
   Problem
        Seitenaufrufe sollen auf eine andere URL
         umgeleitet werden, ohne daß der User dies
         bemerkt (z.B. bei "Umzug" der Site)
        Vorbild: mod_rewrite von Apache
   Lösung
    1.   BeginRequest-Event abfangen
    2.   RewritePath-Funktion verwenden, um URL
         "umzuschreiben"
Automatische URL-Umleitung
   Tips & Tricks
       Ursprüngliche URL kann für
        "Weiterverwendung" im Context-Objekt
        gespeichert werden (Items-Aufzählung)
demo

  URL-Umleitung
  Democode: ReDirect.sln
Vielen Dank!
   Fragen kostet nichts…
Weitere Informationen
   Nutzloses Wissen
    Hanswilhelm Haefs: Handbuch des nutzlosen
    Wissens, dtv Verlag
   Forms Authentication
    http://portals.devx.com/SummitDays/Article/6
    666/0/page/1
   URL Rewriting
    http://www.codeproject.com/aspnet/URLRewri
    ter.asp
   ASP.NET Templates
    http://www.wilsondotnet.com
   Download der Beispiele
    http://www.uwebaumann.de
   ASP.NET allgemein
    http://www.asp.net

						
Related docs