Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "ASP.NET Tips & Tricks Uwe Baumann Technologieberater Developer Group Microsoft GmbH"—  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 Nützliche Tips für den ASP.NET-Alltag Logon und Authentifizierung Logon und Authentifizierung File Upload und Download File Upload und Download Datenübergabe zwischen Webseiten Datenübergabe zwischen Webseiten Zentrale Fehlerbehandlung Zentrale Fehlerbehandlung Webseiten-Dokumentvorlagen (Templates) Webseiten-Dokumentvorlagen (Templates) Automatische URL-Umleitung (Redirection) Automatische URL-Umleitung (Redirection) Einige komplett nutzlose, aber irgendwie interessante Informationen. 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 Problem Nur authentifizierte User(-gruppen) sollen auf bestimmte Seiten zugreifen dürfen Nur authentifizierte User(-gruppen) sollen auf bestimmte Seiten zugreifen dürfen Aufgaben Aufgaben 1. Logon-Seite erstellen 2. Authentifizierung der User gegen beliebige Datenbank bzw. andere Quellen 3. Betreffende Seiten absichern

5 Logon und Authentifizierung Tips & Tricks Tips & Tricks Rollenbasierte Zugriffskontrolle nicht "aus der Box" möglich Rollenbasierte Zugriffskontrolle nicht "aus der Box" möglich Möglich durch Erstellung und Zuweisen eines eigenen GenericPrincipal im Authenticate-Event Möglich durch Erstellung und Zuweisen eines eigenen GenericPrincipal im Authenticate-Event GenericIdentity-Objekt GenericIdentity-Objekt Speichert User-Identität (Name) Speichert User-Identität (Name) GenericPrincipal-Objekt GenericPrincipal-Objekt Speichert Identität und Rollen Speichert Identität und Rollen

6 Forms Authentifizierung Democode: FormsAuth.sln demo demo

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

8 File Upload und Download Problem Problem User sollen Dateien auf dem Webserver in einer Datenbank ablegen können User sollen Dateien auf dem Webserver in einer Datenbank ablegen können Aufgaben 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

9 File Upload und Download Tips & Tricks Tips & Tricks FORM enctype="multipart/form-data" einfügen FORM enctype="multipart/form-data" einfügen INPUT type="file" runat="server" einfügen INPUT type="file" runat="server" einfügen PostedFile-Objekt PostedFile-Objekt Eigenschaft des Input-Controls Eigenschaft des Input-Controls Eigenschaften des hochgeladenen Files (Größe, MIME-Type, Name) Eigenschaften des hochgeladenen Files (Größe, MIME-Type, Name) Abspeichern über SaveAs-Methode oder "manuell" über InputStream Abspeichern über SaveAs-Methode oder "manuell" über InputStream

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

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

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

13 Datenübergabe zwischen Webseiten Tips & Tricks Tips & Tricks Server.Transfer hält die Anfrage auf dem selben Server Server.Transfer hält die Anfrage auf dem selben Server Zugriff auf die Instanzvariablen der vorigen Seite ist in Form_Load möglich Zugriff auf die Instanzvariablen der vorigen Seite ist in Form_Load möglich Context-Objekt Context-Objekt Handler-Eigenschaft enthält Referenz auf die Instanz der letzten Seitenklasse Handler-Eigenschaft enthält Referenz auf die Instanz der letzten Seitenklasse Cast auf die Seitenklasse nötig Cast auf die Seitenklasse nötig

14 Das ASP.NET Prinzip POST /site/form1.aspx..... INETINFO.EXE 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")] public string Hello() { return "Hello"; return "Hello"; }} Page Class ASPNET_ISAPI.DLL Assembly HTTP OK..... Instanzieren Kompilieren form1.aspx form1_aspx.dll HTTP Request HTTP Response

15 Context Object verwenden demo demo

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

17 Zentrale Fehlerbehandlung Problem Problem Fehler, die irgendwo in der Web- Applikation auftreten, sollen zentral registriert bzw. behandelt werden Fehler, die irgendwo in der Web- Applikation auftreten, sollen zentral registriert bzw. behandelt werden Ein Eintrag in das Applikationslog soll erstellt werden Ein Eintrag in das Applikationslog soll erstellt werden Aufgaben Aufgaben 1. Fehlerbehandlungscode in Global_asax schreiben, Informationen extrahieren 2. System.Diagnostics-Klassen verwenden, um einen Logeintrag zu erstellen

18 Zentrale Fehlerbehandlung Tips & Tricks Tips & Tricks Die abgefangene Exception ist immer "HTTPUnhandledException", die "wirkliche" Exception steht in InnerException Die abgefangene Exception ist immer "HTTPUnhandledException", die "wirkliche" Exception steht in InnerException EventLog-Objekt EventLog-Objekt Alle Funktionen zum Umgang mit Eventlogs 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 MyError As System.Exception Dim ErrorMessage As String Dim ErrorMessage As String Dim ErrorSource As String Dim ErrorSource As String Dim MyError As System.Exception Dim MyError As System.Exception MyError = Context.Error.InnerException MyError = Context.Error.InnerException ErrorMessage = MyError.Message ErrorMessage = MyError.Message ErrorSource = MyError.Source 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 MyError As System.Exception Dim ErrorMessage As String Dim ErrorMessage As String Dim ErrorSource As String Dim ErrorSource As String Dim MyError As System.Exception Dim MyError As System.Exception 'Eigentlicher Fehler ist in InnerException gespeichert 'Eigentlicher Fehler ist in InnerException gespeichert 'Äußere Exception ist immer HttpUnhandledException 'Äußere Exception ist immer HttpUnhandledException MyError = Context.Error.InnerException MyError = Context.Error.InnerException ErrorMessage = MyError.Message ErrorMessage = MyError.Message ErrorSource = MyError.Source ErrorSource = MyError.Source End Sub

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

22 ASP.NET Logfiles Democode: CentralExceptions.sln demo demo

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

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

25 Seitenvorlagen (Templates) Tips & Tricks Tips & Tricks Render-Methode überschreiben ist einfach zu realisieren und sehr performant, aber etwas schlecht zu warten (kein WYSWYG) 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) Alternative: Header und Footer als Controls erstellen, in OnPreRender-Event einfügen (WYSWYG über Visual Studio)

26 ASP.NET Templates Democode: SimpleTemplates.sln demo demo

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

28 Automatische URL-Umleitung Problem Problem Seitenaufrufe sollen auf eine andere URL umgeleitet werden, ohne daß der User dies bemerkt (z.B. bei "Umzug" der Site) 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 Vorbild: mod_rewrite von Apache Lösung Lösung 1. BeginRequest-Event abfangen 2. RewritePath-Funktion verwenden, um URL "umzuschreiben"

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

30 URL-Umleitung Democode: ReDirect.sln demo demo

31 Vielen Dank! Fragen kostet nichts… Fragen kostet nichts…

32 Weitere Informationen Nutzloses Wissen Hanswilhelm Haefs: Handbuch des nutzlosen Wissens, dtv Verlag Nutzloses Wissen Hanswilhelm Haefs: Handbuch des nutzlosen Wissens, dtv VerlagHandbuch des nutzlosen WissensHandbuch des nutzlosen Wissens Forms Authentication 666/0/page/1 Forms Authentication 666/0/page/1 666/0/page/1 666/0/page/1 URL Rewriting ter.asp URL Rewriting ter.asp ter.asp ter.asp ASP.NET Templates ASP.NET Templates Download der Beispiele Download der Beispiele ASP.NET allgemein ASP.NET allgemein


Herunterladen ppt "ASP.NET Tips & Tricks Uwe Baumann Technologieberater Developer Group Microsoft GmbH"

Ähnliche Präsentationen


Google-Anzeigen