ASP.NET Tips & Tricks Uwe Baumann Technologieberater Developer Group Microsoft GmbH [email protected] 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.
Download
Report
Transcript ASP.NET Tips & Tricks Uwe Baumann Technologieberater Developer Group Microsoft GmbH [email protected] 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.
ASP.NET
Tips & Tricks
Uwe Baumann
Technologieberater
Developer Group
Microsoft GmbH
[email protected]
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.
2.
3.
Logon-Seite erstellen
Authentifizierung der User gegen beliebige
Datenbank bzw. andere Quellen
Betreffende Seiten absichern
Logon und Authentifizierung
Tips & Tricks
GenericIdentity-Objekt
Rollenbasierte Zugriffskontrolle nicht "aus
der Box" möglich
Möglich durch Erstellung und Zuweisen
eines eigenen GenericPrincipal im
Authenticate-Event
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.
2.
3.
4.
Upload-Seite erstellen
Daten aus Upload in SQL Server leiten
Download-Seite erstellen
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.
2.
Daten in der aktuellen Instanz der
Seitenklasse speichern
Daten in der Folgeseite über das ContextObjekt 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
HTTP Request
POST /site/form1.aspx
.....
ASPNET_ISAPI.DLL
HTTP Response
HTTP 1.1 200 OK
.....
form1.aspx
<%@ WebService language="c#" class=
using System.Web.Services;
form1_aspx.dll
[WebService(Description="Provides a v
public class Simple
{
[WebMethod(Description=„
Returns a nice greeting")]
public string Hello()
{
return "Hello";
}
}
Assembly
Kompilieren
Instanzieren
ASPNET_WP.EXE
Page Class
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 WebApplikation auftreten, sollen zentral
registriert bzw. behandelt werden
Ein Eintrag in das Applikationslog soll
erstellt werden
Aufgaben
1.
2.
Fehlerbehandlungscode in Global_asax
schreiben, Informationen extrahieren
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.
2.
3.
Seitenvorlage (Template) erstellen
Render-Methode überschreiben
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.
2.
BeginRequest-Event abfangen
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