Walidacja danych w ASP.NET MVC

Podobne dokumenty
ASP.NET MVC. Uwierzytelnianie i routing. Zaawansowane programowanie internetowe Instrukcja nr 6

5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Modele danych walidacja widoki zorientowane na model

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Nowy projekt: - ASP.NET MVC 3 Web Application - [Other Languages] Visual C# Web ASP.NET MVC 3 Web Application - okno dialogowe:

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Realizacja Aplikacji Internetowych 2012 laboratorium K. M. Ocetkiewicz

Asynchroniczne interfejsy

Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz

Microsoft.NET: ASP.NET MVC + Entity Framework (Model First)

Walidacja po stronie serwera Walidacja po stronie klienta:

Kontrola dostępu w ASP.NET

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Realizacja Aplikacji Internetowych 2013 laboratorium K. M. Ocetkiewicz

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

WYKORZYSTANIE WZORCA MVC W ASP.NET

Migracja bazy danych Microsoft Access *.mdb do Microsoft SQL 2008 Server R2 SP1 dla oprogramowania Płatnik

Laboratorium 7 Blog: dodawanie i edycja wpisów

Comarch e-sklep Sync. wersja

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

e-audytor v.3.x INSTRUKCJA INSTALACJI I URUCHOMIENIA SYSTEMU

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Podstawowe wykorzystanie Hibernate

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Zarządzanie Infrastrukturą IT

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

Wykład 5 Okna MDI i SDI, dziedziczenie

Tworzenie i wykorzystanie usług sieciowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Analizując żądania za pomocą narzędzi developerskich można odczytać listę preferowanych języków, jak na poniższym przykładzie.

Bezpieczne uruchamianie apletów wg

Sesje i logowanie. 1. Wprowadzenie

Programowanie obiektowe

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

Instrukcja laboratoryjna

Zaawansowane aplikacje internetowe - laboratorium

4 AS SP.NET MVC. Widok. Zaawansowane programowanie internetowe Instrukcja nr 4

PRZYKŁAD. Prosta uczelnia. Autor: Jan Kowalski nr indeksu: (przykładowy projekt)

Program Rabator dla Microsoft Windows.

Backend Administratora

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

(aktualizacja 30 kwietnia 2018)

Budowa aplikacji ASP.NET współpracującej z bazą danych do obsługi przesyłania wiadomości

MVC w praktyce tworzymy system artykułów. cz. 2

Spring Web MVC, Spring DI

Aplikacje www laboratorium

DESlock+ szybki start

Serwery aplikacji. dr Radosław Matusik. radmat

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Programowanie obiektowe

Budowa aplikacji ASP.NET współpracującej z bazą danych do obsługi przesyłania wiadomości

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Platformy Programowania

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Mazowiecki Elektroniczny Wniosek Aplikacyjny

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory

Pracownia internetowa w szkole ZASTOSOWANIA

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Integracja Comarch e-sprawozdania

Kancelaria Prawna.WEB - POMOC

Pomoc dla usługi GMSTHostService. GMSTHostService. Pomoc do programu 1/14

Compas 2026 Personel Instrukcja obsługi do wersji 1.05

Aktualizacja SMSFall v Data publikacji:

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Szczegółowy opis zamówienia:

Aplikacje WWW - laboratorium

Instrukcja instalacji aplikacji PlanSoft.org

Wszystkie parametry pracy serwera konfigurujemy w poszczególnych zakładkach aplikacji, podzielonych wg zakresu funkcjonalnego.

Wykład 8: klasy cz. 4

Programowanie niskopoziomowe

Praca w programie dodawanie pisma.

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

POLITECHNIKA POZNAŃSKA. Oprogramowanie dla telefonów z systemem Windows Phone 8 obsługujących technologię NFC do sprawdzania listy obecności.

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

media Blitz wydajne sytemy szablonów

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Zaawansowane aplikacje internetowe laboratorium REST

SOLIDWORKS PDM Tworzenie kopii zapasowych.

Dokumentacja instalacyjna i konfiguracyjna Aplikacja ADR. Wersja dokumentu 1.0. Strona 1/9

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Original edition copyright 2011 by Adam Freeman and Steven Sanderson. All rights reserved.

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Podstawy Pentaho Data Integration

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

1. Opis ogólny. 2. Opis techniczny. 3. Wymagania techniczne

Transkrypt:

Walidacja danych w ASP.NET MVC 1. Prosta walidacja 2. Walidacja z Data Annotation public ActionResult Edit(Person person) bool blad = false; if(person.name.trim().length == 0) ViewData["Blad1"] = "Nazwisko użytkownika jest wymagane" blad = true; if(person.age < 0 person.age > 120) ViewData["Blad2"] = "Błędny zakres wieku osoby" blad = true; if(blad==false) csi.savedata(person); return RedirectToAction("index"); else return View(person); Właściwości: IsValid Metody: AddModelError(string key, Exception exception) AddModelError(string key, string errormessage) IsValidField(string key) 1

public ActionResult Edit(Person person) if(person.name.trim().length == 0) ModelState.AddModelError("Name", "Nazwisko użytkownika jest wymagane"); if(person.age > 0 && person.age < 120) ModelState.AddModelError("Age", "Niepoprawy zakres"); if(modelstate.isvalid) csi.savedata(person); return RedirectToAction("index"); else return View(person); if(modelstate.isvalid) csi.savedata(person); return RedirectToAction("index"); else return View(person); DEMO Range RegularExpression Required StringLength DataType 2

Reguły walidacji w ASP.NET MVC zapisuje się za pomocą tzw. Data Annotations class Person public string Name set; get; public int Age set; get; public string PhoneNumber set; get; class Person [Required] [StringLength(50)] public string Name set; get; [Range(0, 100)] public int Age set; get; [RegularExpression(@"(\d3)-\d3-\d3")] public string PhoneNumber set; get; class Person [Required(ErrorMessage = "Pole wymagane")] [StringLength(50, ErrorMessage = "Długość nie większa niż 50 znaków")] public string Name set; get; [Range(0, 100)] public int Age set; get; [RegularExpression(@"(\d3)-\d3-\d3")] public string PhoneNumber set; get; public ActionResult Create(Person data) if(modelstate.isvalid) csi.savedata(person); return RedirectToAction("index"); else return View(person); 3

DEMO [AttributeUsage(AttributeTargets.Property AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public class EvenAttribute : ValidationAttribute public EvenAttribute() public override bool IsValid(object value) if(value == null) return true; else return (value as int)%2 == 0? true : false; Autentykacja w ASP.NET MVC Autentykacja proces rozpoznawania użytkownika na podstawie dostarczonych informacji. Autoryzacja proces sprawdzania czy użytkownik ma dostateczne uprawnienia do wykonania żądanej czynności. 4

Narzędzie do konfiguracji stron ASP.NET dostarczane razem z Visual Studio. Uruchamiane z menu Project > ASP.NET Configuration Jeżeli razem z Visual Studio został zainstalowany SQL Server Express Edition, to informacje o użytkownikach, rolach itd. są przechowywane w lokalnej bazie danych umieszczonej w katalogu App_Data. Jeżeli dane mają być przechowywane na innym serwerze (ale serwerze SQL Server), to wtedy należy uruchomić narzędzie aspnet_regsql do jego skonfigurowania i dokonać odpowiednich wpisów w pliku web.config 5

Autentykacja Forms Windows 6

[Authorize] public ActionResult Edit(int id) [Authorize(Users="Admin, Editor")] public ActionResult Edit(int id) Uwaga! Tylko ASP.NET [Authorize(Roles="Administrators")] public ActionResult Edit(int id) 7

Membership klasa dostarczająca podstawową obsługę użytkowników. Umożliwia m. in. dodawanie nowego użytkownika, usuwanie użytkownika, modyfikowanie informacji o użytkowniku, generowanie listy użytkowników. MembershipUser klasa dostarczająca podstawowych informacji na temat konkretnego użytkownika. Umożliwia m.in. zmianę hasła, określenie czy użytkownik jest aktualnie zalogowany, kiedy użytkownik ostatni raz się logował. MembershipProvider klasa abstrakcyjna definiująca funkcjonalność dla źródła danych (data providers), które ma być wykorzystane z mechanizmem Memberships. Personalizacja dostosowywanie wyglądu strony internetowej w zależności od zalogowanego użytkownika, dostarczonych przez niego informacji lub historii jego aktywności na stronie. Mechanizm ASP.NET Profiles umożliwia przechowywanie i dostęp do dodatkowych informacji o użytkowniku. Routing Trasa jest wzorcem URL mapowanym na odpowiedni uchwyt, którym może być: fizyczny plik na dysku klasa, która może przetworzyć żądanie 8

Wzorce URL składają się z segmentów rozdzielonych znakiem slash. Każdy segment może zawierać stałe znakowe jak również zmienne, przy czym zmienne muszą być objęte nawiasami klamrowymi /Produkty/kategoria_produktow /Faktury/Rok/Miesiac/Dzien /Artykuly/Rok-Miesiac-Dzien DEMO controller/action/id controller.mvc/action/id Każdej zmiennej we wzorcu URL można przypisać wartość domyślną, która będzie wykorzystana w przypadku, gdy nie podamy jej wartości. controller/action/id / controller = "Home" (wartość domyślna), action = "Index" (wartość domyślna) /Osoba/ controller = "Osoba", action = "Index" (wartość domyślna) /Osoba/Edit/5 controller = "Osoba", action = "Edit" id = 5 Trasy są wybierane w kolejności dodawania. Tzn. wybrana będzie pierwsza pasująca trasa. 9

Pozwalają na określenie jakie wartości mogą przyjmować zmienne. Jeżeli adres URL zawiera wartości, które są poza zakresem taka trasa jest ignorowana. Ograniczenia mogą być definiowane jako: wyrażenie regularne (string) obiekty implementujące interfejs IRouteConstraint public interface IRouteConstraint bool Match( HttpContextBase httpcontext, Route route, string parametername, RouteValueDictionary values, RouteDirection routedirection ) Adresy URL : powinny być proste i jasne powinny być krótkie powinny zawierać podkreślenie "_" zamiast spacji (%20) powinny być "hackowalne" przez użytkownika nie powinny zawierać identyfikatorów bazy danych powinny wspierać "niejednoznaczność" Jeżeli pierwsze żądanie dla aplikacji wykonaj zawartość pliku global.asax Wykonanie routingu (UrlRoutingModule) Stworzenie uchwytu żądania MVC Stworzenie kontrolera (DefaultControllerFactory) Wywołanie metody Execute Wywołanie akcji (ControllerActionInvoker) Przetworzenie wyniku 10

public interface IRouteHandler IHttpHandler GetHttpHandler( RequestContext requestcontext ) public IHttpHandler GetHttpHandler( RequestContext requestcontext) var routedata = requestcontext.routedata; routedata.values["action"] += "ByName"; return new MvcHandler(requestContext); routes.add( "ByName", new Route( "Kontakty/Name/action", new RouteValueDictionary( new controller = "Osoba", action = "Display" ), new Additions.ChangeActionNameHandler() ) ); 11