Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

ASP.NET Tips & Tricks Uwe Baumann

Ähnliche Präsentationen


Präsentation zum Thema: "ASP.NET Tips & Tricks Uwe Baumann"—  Präsentation transkript:

1 ASP.NET Tips & Tricks Uwe Baumann
Technologieberater Developer Group Microsoft GmbH

2 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.

3 Nutzloses Wissen – Teil 1
Die Durchschnittsgeschwindigkeit eines Schmetterlings beträgt 32 km/h.

4 Logon und Authentifizierung
Problem Nur authentifizierte User(-gruppen) sollen auf bestimmte Seiten zugreifen dürfen Aufgaben Logon-Seite erstellen Authentifizierung der User gegen beliebige Datenbank bzw. andere Quellen Betreffende Seiten absichern

5 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

6 demo Forms Authentifizierung Democode: FormsAuth.sln

7 Nutzloses Wissen – Teil 2
Ungarn exportiert mehr Nilpferde als jedes andere europäische Land.

8 File Upload und Download
Problem User sollen Dateien auf dem Webserver in einer Datenbank ablegen können Aufgaben Upload-Seite erstellen Daten aus Upload in SQL Server leiten Download-Seite erstellen Daten aus SQL Server zurück an Browser schicken

9 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

10 demo Upload / Download - Directory - SQL Server
Democode: UploadDownload.sln

11 Nutzloses Wissen – Teil 3
Der kürzeste burmesische Familienname ist "H".

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

13 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

14 Das ASP.NET Prinzip INETINFO.EXE POST /site/form1.aspx .....
HTTP Request ASPNET_ISAPI.DLL HTTP OK ..... HTTP Response form1.aspx ASPNET_WP.EXE form1_aspx.dll WebService language="c#" class= using System.Web.Services; [WebService(Description="Provides a v public class Simple { [WebMethod(Description=„ Returns a nice greeting")] public string Hello() { return "Hello"; } Page Class Assembly Kompilieren Instanzieren

15 demo Context Object verwenden

16 Nutzloses Wissen – Teil 4
Harvey Kennedy erfand die Schnürsenkel und wurde dadurch reich.

17 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 Fehlerbehandlungscode in Global_asax schreiben, Informationen extrahieren System.Diagnostics-Klassen verwenden, um einen Logeintrag zu erstellen

18 Zentrale Fehlerbehandlung
Tips & Tricks Die abgefangene Exception ist immer "HTTPUnhandledException", die "wirkliche" Exception steht in InnerException EventLog-Objekt Alle Funktionen zum Umgang mit Eventlogs

19 Application_Error() Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) ' Fires when an error occurs Dim MyError As System.Exception Dim ErrorMessage As String Dim ErrorSource As String MyError = Context.Error.InnerException ErrorMessage = MyError.Message ErrorSource = MyError.Source End Sub

20 Application_Error() Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) ' Fires when an error occurs Dim MyError As System.Exception Dim ErrorMessage As String Dim ErrorSource As String 'Eigentlicher Fehler ist in InnerException gespeichert 'Äußere Exception ist immer HttpUnhandledException MyError = Context.Error.InnerException ErrorMessage = MyError.Message ErrorSource = MyError.Source End Sub

21 Logfile-Eintrag erstellen
If Not EventLog.SourceExists("TechTalkWeb") Then EventLog.CreateEventSource("TechTalkWeb", "Application") End If Dim MyEventLog As New EventLog() MyEventLog.Source = "TechTalkWeb" MyEventLog.WriteEntry(ErrorMessage & _ ControlChars.CrLf & ErrorSource, _ EventLogEntryType.Error) 'Möglich: Keinen lokalen Fehler auslösen (schlechte Idee) Context.ClearError() 'Stattdessen auf beliebige Seite umleiten (z.B. Alternativserver) Response.Redirect("

22 demo ASP.NET Logfiles Democode: CentralExceptions.sln

23 Nutzloses Wissen – Teil 5
Der Mensch blinzelt normalerweise Mal pro Tag.

24 Seitenvorlagen (Templates)
Problem Eine Seitenvorlage soll HTML enthalten, das auf jeder Seite vorkommt Lösung Seitenvorlage (Template) erstellen Render-Methode überschreiben Content-Seiten von Master-Seite ableiten

25 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)

26 demo ASP.NET Templates Democode: SimpleTemplates.sln

27 Nutzloses Wissen – Teil 6
Gold ist das 16. seltenste Element auf der Welt.

28 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 BeginRequest-Event abfangen RewritePath-Funktion verwenden, um URL "umzuschreiben"

29 Automatische URL-Umleitung
Tips & Tricks Ursprüngliche URL kann für "Weiterverwendung" im Context-Objekt gespeichert werden (Items-Aufzählung)

30 demo URL-Umleitung Democode: ReDirect.sln

31 Vielen Dank! Fragen kostet nichts…

32 Weitere Informationen
Nutzloses Wissen Hanswilhelm Haefs: Handbuch des nutzlosen Wissens, dtv Verlag Forms Authentication URL Rewriting ASP.NET Templates Download der Beispiele ASP.NET allgemein


Herunterladen ppt "ASP.NET Tips & Tricks Uwe Baumann"

Ähnliche Präsentationen


Google-Anzeigen