Validering af bruger-input i.NET WebForms Valideringsmuligheder i ASP.NET Fordele og ulemper Server-side vs. client-side Formatering vs. Validering.

Slides:



Advertisements
Lignende præsentationer
Kort om JavaScript Afvikles i browser på klienten Sendes fra server (php, asp, aspx, htm) eller startes i klient som htm/html fil. Skabelon: –”main” -
Advertisements

CoDriver Afslut 1 Tastaturet Her kan du få lidt at vide om tastaturet og tasternes funktion. Klik på knapperne nederst til venstre for at bladre frem og.
Hvordan kommunikerer jeg med min PC
Velkommen til Softwarekonstruktion
SQL 1 DDL og DML.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Lasse Steensgaard [xls]Opsamlende forelæsning på W2, 2. april 2003slide 1 HTML og PHP: Baglæs fra output til input PHP: Variable, strenge og arrays Funktioner,
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Tastaturet klik på tastaturet for at starte testen.
Intro Forelæsning 6 Linux Install Party i PC-Cafeen i morgen.
C# programmering Per P. Madsen Afd. for Proceskontrol
Indsæt eller fjern værktøjslinier
1 Unified Expression Language Copyright © Lund & Bendsen A/S Unified Expression Language.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Intro til C# apps Kodegennemgang af simpel C# app
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Ingeniørhøjskolen i Århus Slide 1 Newton approximation ”Oversæt” til algoritme - Step 5: Skriv kode - Step 4: Skriv pseudokode - Step 3: Specificér pre-
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
ADO.NET Databaser SQL Client (SQL server 7 og senere) OleDb (en række incl. jet) ODBC MySql (ekstra driver skal instaleres) Oracle (XML dataset) Samme.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
Anvendelser I Leg og spil.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
ASP.NET – web site publish. ASP.NET – site-version.
C#: Data Typer. 2 Nordjyllands Erhvervakademi Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies,
Forelæsning 7.1 – repetition
Identitet vs lighed. Spørgsmål Hvad udskriver run metoden? 1.”Ens!” 2.”Forskellige!” 3.Ved ikke public class Driver{ public static void run(){ String.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Samtidighed. Disposition Formål med tråde Eksempel på fordel ved tråde Thread-pooling Livscyklus Problemstillinger Algoritmer ◦Dekkers ◦Peterson Opsumering.
Søgning.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSøgning.2 Søgeproblemer... Søgning efter fil(er) Søgning i databaser.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
Programmering I Java/C# Datatekniker Dit første projekt.
Forelæsning Uge 2 – Torsdag Java syntax og style guide Sætninger –Simple sætninger (assignment, interne og eksterne metodekald) –Sammensatte sætninger.
IT for let øvede Modul 2: ”Sådan bruger du tastaturet”
IT for begyndere Modul 3: ”Sådan bruger du tastaturet” 1.
Forelæsning Uge 2 – Torsdag
ISS webserver og web applikationer
Quiz – Uge 3 – mandag – første time
Modul 3: ”Sådan bruger du tastaturet”
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
”Repetition: Mus og tastatur”
Præsentationens transcript:

Validering af bruger-input i.NET WebForms Valideringsmuligheder i ASP.NET Fordele og ulemper Server-side vs. client-side Formatering vs. Validering

UML diagram over klasser til validering i C#

Eksempler på Regular Expressions Dansk telefonummer: [1-9]\d{3} \d{4} Et tal mellem 1 og 9, så 3 tal mere, et mellemrum og så 4 tal. Fornavn, evt. mellemnavne og et efternavn: \w+( \w+)+ 1-n bogstaver, så gentaget 1-n gange: et mellemrum og 1-n bogstaver. \w+ 1-n bogstaver ([-+.]\w+)* 0-n gange: enten -+ eller. og så \w+ 1-n bogstaver ([-.]\w+)* 0-n gange: - eller. og så 1-n bogstaver \. et punktum (escape karakter foran) \w+ 1-n bogstaver ([-.]\w+)* 0-n gange: - eller. og så 1-n bogstaver

protected void PrimeValidate(object source, ServerValidateEventArgs args) { int indtastet = int.Parse(args.Value); bool isPrime = true; for (int i = 2; i < indtastet; ++i) { if (indtastet % i == 0) {isPrime = false; i = indtastet;}; } args.IsValid = isPrime; } function validatePrime(oSrc, args){ var indtastet = parseInt(args.Value); var isPrime = true; for (i = 2; i < indtastet; ++i) {if (indtastet % i == 0) {isPrime = false; i = indtastet;};} args.IsValid = isPrime; } string script; script = ""; script += " "; script += "function validatePrime(oSrc, args){"; … RegisterClientScriptBlock("validatePrime", script); CustomValidator til Primtal RegisterStartupScript("validatePrime", script); eller C# JS

ValidationSummary i WebForm

function kun_tal(key) { // Hvis en af betingelserne er opfyldt, så returneres - ellers ikke. // Accepterer følgende tegn: '0' - '9', '0' - '9’ (numerisk tastatur), // [backspace], [delete], [tab], [pil venstre], [pil højre], [f5], [RETURN] return ( (event.keyCode >= 48 && event.keyCode <= 57) || // ’0’ – ’9’ (event.keyCode >= 96 && event.keyCode <= 105) || // ’0’ – ’9’ (numerisk tastatur) (event.keyCode == 8) || // [backspace] (event.keyCode == 46) || // [delete] (event.keyCode == 9) || // [tab] (event.keyCode == 39) || // [pil venstre] (event.keyCode == 37) || // [pil højre] (event.keyCode == 116) || // [f5] (event.keyCode == 13) || // [RETURN] (Carriage Return) (event.keyCode == 10)// [RETURN] (Linefeed) ); }; Styring af input Clientside JS

+- Clientside validering Hurtigt – validering sker nu! Mulighed for popup- vinduer, som er langt mere tydelige for brugerne. Ikke så sikkert, da koden ligger i tekst i HTML- siden. Forskellige scripting- sprog. Serverside validering Sikkert udført på serveren. Flere muligheder for sprog. Langsomt - alle data og view-states skal omkring serveren, og tilbage igen med en ny side. Clientside vs. Serverside

Validering vs. Formatering Hvor paranoid man er Hvor usikker serveren er Hvor mange andre der har adgang til den samme database Kombination af det hele?

protected string Format(string tekst) { char space = ' '; char[] sep = new char[1]; sep[0] = space; string[] ord = tekst.Split(sep); string returTekst = ""; string tmp = ""; Label2.Text = ""; Label2.Text += ord.Length.ToString() + " "; for(int i = 0; i < ord.Length; i++) // Et ord ad gangen { tmp = ord[i].ToLower(); // Sæt det hele til små bogstaver tmp = tmp.Substring(0,1).ToUpper() + tmp.Substring(1, tmp.Length -1); // Til stort if(tmp.Substring(0,2) == "Mc") // Efter “Mc” til stort – Skotske navne {tmp = tmp.Substring(0,2) + tmp.Substring(2,1).ToUpper() + tmp.Substring(3, tmp.Length -3);}; if(tmp.Substring(0,3) == "Mac") // Efter “Mac” til stort – Skotske navne {tmp = tmp.Substring(0,3) + tmp.Substring(3,1).ToUpper() + tmp.Substring(4, tmp.Length -4);}; // Yderligere kan så ændres “Von” til “von”, “De” til “de” o.s.v. returTekst += tmp + " "; } return returTekst.Trim(); } Formatering af indtastet navn eller adresse. C#