Programování v prostředí.net ASP.NET



Podobné dokumenty
Programování v jazyku C# II. 8.kapitola

Programování v prostředí.net

Tvorba informačních systémů

Tvorba informačních systémů

Microsoft ASP.NET 2.0/3.0 (advanced)

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Michal Augustýn Microsoft Most Valuable Professional

Michal Augustýn ALWIL Software Microsoft Most Valuable Professional

1 Webový server, instalace PHP a MySQL 13

APS Administrator.OP

Informační systém pro e-learning manuál

Tvorba informačních systémů

Instalace a konfigurace web serveru. WA1 Martin Klíma

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

Komponenty v.net. Obsah přednášky

Internet Information Services (IIS) 6.0

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

TÉMATICKÝ OKRUH Softwarové inženýrství

MBI - technologická realizace modelu

1. Webový server, instalace PHP a MySQL 13

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

WCF RIA Services. aneb jak na RIA aplikace v Silverlightu

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Maturitní otázky z předmětu PROGRAMOVÁNÍ

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

M4 PDF rozšíření. Modul pro PrestaShop.

Stručný úvod pro programátory. Michal Kuchta

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

APS Administrator.ST

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Michal Krátký, Miroslav Beneš

Vazba ESO9 na MS Outlook a MS Exchange

Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Vyšší odborná škola informačních služeb v Praze

Artlingua Translation API

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

17. července :51 z moravec@yahoo.com

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Úvod do Web Services

ZMĚNY V DATABÁZI A SOUVISEJÍCÍ POLOŽKY S APLIKACÍ ESHOP...

KIV/PIA 2013 Jan Tichava

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

NSWI096 - INTERNET JavaScript

Programátorská příručka

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Koláčky, sezení. Martin Klíma

language="javascript">... </script>.

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7

Server-side technologie pro webové aplikace

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Návrh a tvorba WWW stránek 1/8. Formuláře

Architektury informačních systémů

Elektronická podpora výuky předmětu Komprese dat

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Novell Identity Management. Jaromír Látal Datron, a.s.

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

Zabezpečení proti SQL injection

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

ISZR Referenční agent.net

UJO Framework. revoluční architektura beans. verze

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Synchronizace CRM ESO9 a MS Exchange

Mediareference Vojtěch

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

MVVM pro desktop i web

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Zabezpečení proti SQL injection

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Databázové a informační systémy

Internet 2 css, skriptování, dynamické prvky

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

Po stisku Next se nám objeví seznam dostupných tříd (naše zkompilovaná třída User.KBI), viz následující obrázek.

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

Použití databází na Webu

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Architektury informačních systémů

Principy UML. Clear View Training 2005 v2.2 1

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

DIPLOMOVÁ PRÁCE. WEBGRAPHS Generátor grafů matematických funkcí jako server control v asp.net Michal Horák

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Desktop GUI. IW5 - Programování v.net a C# Desktop GUI

IRAE 07/08 Přednáška č. 1

typová konverze typová inference

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc

Individuální projekt z předmětu webových stránek 2012/ Anketa

Dědění, polymorfismus

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Nastavení zabezpečení

CineStar Černý Most Praha

KIV/PIA Semestrální práce

Transkript:

Programování v prostředí.net 9 Přednáška 9. Přednáška ASP.NET

Outline Anatomie ASP.NET Page, HTML Controls, Web Controls Common look and feel (Master pages, Skins, Themes, Personalization) State t Management (Control State, View State, Session State, Application State) Bezpečnost Konfigurace 2

Dynamický web Stránka je tvořena strojově před odesláním klientovi Webové aplikace Výměna informací s uživatelem Light weight klient Data driven web Spolupráce p s databází Systémy pro tvorbu dynamických webů PHP, JSP, ASP.NET 3 HTTP Response (HTML) HTTP Request (ASPX, PHP...) WWW Server dynamicky generuje HTML podle kódu v ASPX, PHP...

ASP.NET Server má k dispozici.net class library K programování lze použít libovolný jazyk.net C# Stránka se kompiluje! Popis se naparsuje a přeloží do assembly Po mírné prodlevě, ě pěkný fofrf Separace kódu od vzhledu code behind/beside WebForms Unifikace rozhraní kontrolek Množství hotových kontrolek Tvorba uživatelských kontrolek Další výhody... 4

Požadavky na ASP. NET Web server Vývoj IIS 5.0 (Win 2000, Win XP prof.) VS 2005 vlastní web server Nasazení IIS 6.0 (Win Server 2003).NET Framework aspnet_regiis.exe -i 5

ASP.NET, IIS, ISAPI a spol. IIS obsluha požadavku na html Obsluha požadavků na jiný typ Internet et Server e Application Programming g Interface extensions Win32 DLL knihovny aspnet_isapi.dll aspx, ascx... Spolupráce IIS s aspnet_isapi.dll IIS 5.0 aspnet_wp.exe IIS 6.0 přímo aspnet_isapi.dll Vyšší integrace Vyšší rychlost 6

7 Zpracování požadavku ASP.NET

System.Web.HttpContext t t Obsahuje veškerá data požadavku HttpRequest Request HttpResponse p Response HttpSessionState Session HttpApplicationState Application IHttpHandler Handler IDictionary Items Je snadno přístupná Metoda ProcessRequest rozhraní IHttpHandler Property Context t v třídách Page a HttpApplication 8

System.Web.HttpApplication ti Umožňuje zásah do HTTP roury reagováním na její události Lze oddědit novou Global.asax Applikační soubor ASP.NET Obsahuje definici aplikace Je naparsován a je vytvořen potomek třídy HttpApplication Dobrovolný Při modifikaci je běžící aplikace restartována 9

System.Web.IHttpHandler H void ProcessRequest(HttpContext context); bool IsReusable {get;} Uživatelské handlery Široké možnosti uživatelského rozšíření Důležitý implementátor rozhraní je Page Obsluha aspx Obsluha daného typu se přiřazuje v konfiguraci web.config v sekci httphandlers 10

System.Web.IHttpModule void Init(HttpApplication context); void Dispose(); Umožňují další způsob úpravy http roury Koexistují s http aplikací Vytváří se s aplikací Ruší se s aplikací V metodě Init se zaregistrují k příslušným událostem Obvykle se využívají pro pre- nebo postprocessing požadavku, případně pro filtraci 11

Page Základ WebForms Obsah stánky Direktivy <%@ Page %> Markup stránky (HTML, CSS, JavaScript) Bloky server side kódu <script runat= server ></script> <% %>, <%= %> Komentáře <%-- --%>, <!-- --> Atribut runat Tag s runat= server je zpracováván na serveru 12

Příklad <% Direktiva %> <%@ Page language="c#" %> <% Markup %> <html> <head><title>inline code test</title></head> <body> <form runat="server"> <input runat="server" id="btn" type="submit" value="push" OnServerClick="ButtonClick" /> </form> </body> </html> <% Blok server side kódu %> <script runat="server"> private void ButtonClick(object sender, EventArgs e) { Response.Write("HelloWorld."); } </script> 13

Zpracování APSX Soubor aspx se naparsuje, přeloží do potomka Page a uloží do assembly Skriptové bloky s atributem runat=server se vloží přímo do definice třídy Bloky mohou obsahovat pouze metody a definice atributů Bloků ů může být více jak jeden Bloky <% %> se vloží spolu s HTML do metody, která se volá při renderování stránky protected virtual void Render(HtmlTextWriter); S každou serverovou kontrolkou je do třídy přidán atribut příslušného typu Poté se volá metoda ProcessRequest 14

Organizace stránky tá Code Inline Prezentační i business logika v jednom souboru Nepřehledné Code Behind ASP.NET 1.x Oddělení kódu stránky do spec. souboru aspx.cs <%@ Page Language="C#" Inherits="className" Src="fileName"%> Code Beside ASP.NET 2.0 Oddělení generovaného kódu od uživatelského <%@ Page Language="C#" g Inherits="className" CodeF ile="filename"%> Lze použí i pro ostatní typy asax, ascx, master 15

Page - detaily Dědí od System.Web.UI.Page Velké množství vlastností Základní prvky reference eee na instance důležitých tříd Application, Cache, Request, Response, Server, Session, Trace, User Další důležité vlastnosti IsPostBack rozlišení zda je stránka zpracovávaná poprvé nebo jako reakce na odeslání z klienta Controls kolekce všech server side uživatelských prvků na stránce ErrorPage stránka, na kterou je zpracování přesměrováno v případě neošetřené výjimky 16

Životní cyklus stránky Události PreInit Init před obnovením stavu InitComplete PreLoad Load po obnovení stavu LoadComplete Zpracování událostí ovládacích prvků PreRender PreRenderComplete SaveStateComplete Unload Implicitní přiřazení obsluh událostí <%@ Page AutoEventWireup="true" %> Obsluhy v metodách Page_XXX 17

Page - formulář Server side formulář Téměř všechny server side ovládací prvky musí být definovány uvnitř server side formuláře <formid="form1" runat="server"> </form> Single Form model Každá ASP.NET stránka - maximálně jeden server side formulář Lze mít další klasické HTML formuláře PostBack = odeslání formuláře zpět jehostránce První zobrazení (např. přes odkaz) není PostBack Rozlišení vlastností IsPostBack 18

Kontrolky formuláře Kontrolky označené atributem runat=server existují i na serveru Každé kontrolce přísluší proměnná název lze určit atributem id Každý element HTML může mít runat=server atribut 19

VIEWSTATE Elementy, jejichž hodnoty se neukládají jako proměnné při POST se serializují do VIEWSTATE Skrytý yýelement input <input type="hidden" name=" VIEWSTATE value="ddwtmtcwnza " /> value obsahuje úložný prostor, ze kterého se čte hodnota kontrolek Hodnoty se obnovují po události Page.Init a před událostí Page.Load bool EnableViewState {get; set;} U všech kontrolek lze určit, zda se budou do VIEWSTATE serializovat 20

Události serverových kontrolek k Serverové kontrolky mohou generovat události Přenos informací o událostech - obdoba VIEWSTATE <input type="hidden" name=" EVENTTARGET" value="" /> <input type="hidden" name=" EVENTARGUMENT" value="" /> Obsah je plněn java skriptem, který je generován APS.NET Události jsou obslouženy po události Page.Load a před událostí Page.Prerender 21

Kontrolky ASP.NET Základem třída System.Web.UI.Control Více typů ovládacích prvků Stránky HtmlControls t l Server side verze HTML tagů WebControls Rozšiřitelná ř sada různorodýchů uživatelských prvků ValidationControls Speciální typ WebControl, provádí validaci uživatelského vstupu WebParts Speciální typ WebControl, součást portálového frameworku LiteralControl Reprezentuje text stránky, který nemá runat atribut 22

Třída Control Některé vlastnosti Controls, EnableTheming, EnableViewState, Page, Parent, SkinID, Visible ID Odpovídá ID atributu kontrolky v markupu Pokud není přiřazen, vygeneruje ASP.NET vlastní UniqueID Skutečný server side identifikátor ovládacího prvku Řeší problém více instancí prvku se stejným ID (např. u kontrolek definovaných šablonou) Události Init, Load, PreRender, Unload, DataBinding, Disposed 23

HtmlControls t l Jmenný prostor System.Web.UI.HtmlControls Potomci třídy HtmlControl Vlastnosti Attributes, Disabled, Style, TagName Každý HTML tag lze převést na server side ovládací prvek atribut runat="server" Ke každému takovému tagu je vytvořen příslušný typ Těsně kopíruje jeho vlastnosti Kopíruje také jejich heterogenní interface ASP.NET naštěstí ě definuje ucelenější set kontrolek: k Web kontrolky 24

WebControls Jmenný prostor System.Web.UI.WebControls Ucelenější systém kontrolek Unifikovaný interface Existence několika komplexních kontrolek Calendar DataGrid DataList Systém vázání dat Možnost vytvářet vlastní kontrolky Kontrolky se se většinou renderují jako jeden či více HMTL kontrolek odstíněno od uživatele 25

Uživatelské kontrolky Dědí od Control Základní funkčnost Žádné specifické UI Pro kontrolky vzniklé agregací WebControl Podpora UI Mohou implementovat System.Web.UI.INamingContainer Repeater System.Web.UI.IPostBackDataHandler TextBox System.Web.UI.IPostBackEventHandler Button 26

Jednoduchá d kontrolka Oddědit od Control nebo WebControl Přidat data a logiku kontrolky Překrýt metodu Render Kompilovat do assembly Nakopírovat assembly do adresáře bin Zaregistrovat kontrolku <%@ Register TagPrefix="Custom" Namespace="CustomControls" Assembly = "CustomControls" C t " %> 27

Komponovaná kontrolka Celá stránka lze převést na uživatelskou kontrolku Odstranit html, body a form tagy @Page na @Control Definovat atribut classname Změnit příponu na ascx <%@ Register TagPrefix= Acme TagName= Login Src= ~\controls\login1.ascx %> Při použití techniky code-beside dědit od UserControl 28

Common look and feel Zajišťuje konzistenci vzhledu stránek celé aplikace Konzistence struktury Master Pages Konzistence vzhledu Themes a Skins Themes styly pro výsledné stránky Skins jednotný vzhled pro WebConstrols Perzistentní uživatelské nastavení Personalisation Silně typový přístup Ukládáno do databáze neomezená životnost 29

Master Page 30 Soubor.master Výsledná třída potomkem System.Web.UI.MasterPage Jediným rozdílem od běžného.aspx souboru je direktiva Master a WebControl ContentPlaceHolder Direktiva <%@ Master %> Atribut MasterPageFile pro hierarchii Obsahuje alespoň jeden ContentPlaceHolder ContentPlaceHolder je nahrazen obsahem definovaným v tzv. ContentPage (.aspx souboru) Musí mít id <asp:contentplaceholderrunat="server" ID="uniqueID" > <%--obsah který se zobrazí, pokud se nepodaří nahrazení--%> </asp:contentplaceholder>

Master Page Content t Page 31 Nastavení MasterPage pro stránky Pro jeden.aspx soubor <%@ Page MasterPageFile="file.master"Title="Pagetitle"%> Pro celou aplikaci web.config <pagesmaster="file.master" /> Dynamicky (programově) pro jednu stránku V obsluze události PreInit nastavit MasterPageFile Veškerý obsah ContentPage tp musí být uzavřenř v nějakém bloku Content <asp:content runat="server" ContentPlaceHolderID="id" > <%--obsah pro daný ContentPlaceHolder--%> </asp:content> ContentPlaceHolderID svazuje obsah s konkrétním ContentPlaceHolder v Master Page Každý Content musí odkazovat na jiný ContentPlaceHolder Odkazovaný ContentPlaceHolder musí existovat Přístup k Master Page vlastnost Master Pro silné typování direktiva i <%@ MasterType%> <%@ MasterType VirtualPath="file.master"%>

Themes Theme je skupina souborů, které řídí vzhled stránek (skin, CSS styly, obrázky), Každé Theme má vlastní adresář v App_Themes Název adresáře Themejednoznačně identifikuje Nastavení theme Pro jeden.aspxs oubor <%@ Page Theme="ThemeDirectoryName"%> <%@ Page StyleSheetTheme="ThemeDirectoryName"%> Pro celou aplikaci web.config <pagestheme="themedirectoryname" /> <pagesstylesheettheme="themedirectoryname" ThemeDirectoryName /> Dynamicky (programově) pro jednu stránku V obsluze události PreInit nastavit Theme nebo StyleSheetTheme Sh tth 32

Skins 33 Skin -.skin soubor = styl pro ovládací prvky Obsahuje vizuální nastavení kontrolek a šablon, např. <asp:buttonrunat="server" Font-Bold="true" BorderWidth="1px" /> V kódu stránky <asp:buttonrunat="server" Text="Buttonek" /> Centralizované nastavení vlastností pro stejné prvky Při více různých skinech pro stejný ovládací prvek nutné odlišit atributem SkinID SkinID je vlastnost definovaná ve třídě Control Možno nastavit v obsluze události PreInit Veskinu lze nastavit jen některé vlastnosti Pro některé kontrolky skin vůbec nastavit nejde Skiny lze potlačit Vlastnost EnableTheming definovaná ve třídě Control Ovlivňuje jen skiny, neovlivňuje CSS styly v Theme Hodnota false potlačí používánískinů na ovládacím prvku a všech jeho vnořených ovládacích prvcích Lze nastavit pro celou stránku (programově nebo direktivou) <%@ Page EnableTheming="false"%>

Personalisation Vestavěný mechanismus pro perzistentní uložení uživatelských dat Není třeba vytvářet vlastní back-end, používá se systém poskytovatelů (Provider) Potomek třídy System.Web.Profile.ProfileProvider eb. e. o e o Výchozí nastavení je AspNetSqlProvider soubor aspnetdb.mdfv adresáři App_Data Podpora ověřených i anonymních uživatelů Definování struktury uchovávaných informaci ve web.config <profile> <providers /><% nastavení providera%> <properties> <% definice vlastností a skupin vlastností profilu %> </properties> </profile> ASP.NET se stará o parsování a dynamické vytvoření třídy, která je potomkem ProfileBase Přístup z instancí tříd HttpContext nebo Page vlastností Profile 34

Personalisation Definice vlastnosti <addname="myproperty"/> Přístup Profile.MyProperty Některé další atributy allowanonymous ukládání hodnoty pro anonymní uživatele (výchozí hodnota: false) musíbýt povolen anonymní přístup defaultvalue počátečníhodnota vlastnosti type plné jméno, assembly(výchozí hodnota: String) readonly vlastnost je jen pro čtení (výchozí hodnota: false) serializeas způsob uložení, možnosti: Xml, Binary, String a ProviderSpecific (výchozí hodnota: String) 35 <addname="favorites" type="system.collection.specialized.stringcollection" /> <addname="myproperty" type="mynamespace.mytype, MyAssembly" serializeas="binary" /> Definice skupiny vlastností <groupname="mygroup"> <addname="myproperty" /> </group> Přístup Profile.MyGroup.MyProperty

Ukládání stavové informace Důležitý prvek dynamiky webu Umožňuje, aby web ineragoval s uživatelem ASP.NET zavádí zobecnění a kateforizaci stavu Stav aplikace (Application state, Cache) Stav realce (Session state) Stav zobrazení (View state) Stav koláčků (Cookie state) 36

HttpApplicationState ti t Základní způsob uchování stavu aplikace Stav aplikace = globální proměnné Dostupná např. přes vlastnost stránky Application Name-Value kolekce Přístup do ApplicationState přes indexer Důležité metody Add, Clear, Get, Set, Remove Jednotlivé metody jsou thread-safe Lock, UnLock Ošetření synchronizace pro kombinace volání Application.Lock(); MyObjectobj = (MyObject)Application["MyKey"]; obj.changemyobject(); Application["MyKey"] = obj; Application.UnLock(); 37

System.Web.Caching.Cache C h Vlastnost Cache stránky nebo instance HttpContext Přístup přes indexer - Name-Value Čtení z Cache a zápis do Cache jsou threadsafe Pro sled operací nutno řešit synchronizaci Důležité metody Cache Add, Insert, Remove Konstanty Cache NoAbsoluteExpiration, NoSlidingExpiration 38

HttpSessionState St t Property Session třídy Page Indexery string int bool IsCookieLess (read only) bool IsNewSession (read only) int Timeout (read/write, v minutách) 39

Session State Management Načítání a ukládání stavu je náročné Ne každá stránka ho potřebuje Atribut EnableSessionState St t direktivy Page False = nenačte se, nezapíše se Readonly = načte se, nezapíše se True = načte se, zapíše se, implicitní hodnota Stav relace je možno ukládat i mimo proces serveru (důležité pro server farmy etc.) Příslušný provider SQL Server 40

Cookies Cookie reprezentuje Name-Value dvojici (pouze string) Cookies jsou posílány při každém požadavku na server Request.Cookies V odpovědi může server poslat stejná cookie s novými parametry nebo přidat nová Response.Cookies Mohou se uchovávat v prohlížeči Mohou být v prohlížeči vypnuty Třída System.Web.HttpCookie Mezi základní vlastnosti patří Expiress Nastavuje počet dní, po které se mácookie v prohlížeči uchovávat 41

View State t Status zobrazení Týká se vždy jen po sobě následujících požadavků na tutéž stránku Realizováno jako skrytá položka všech formulářů na stránce, která obsahuje serializovanou stavovou informaci Obsahuje stavové informace o všech serverových kontrolkách Reprezentován třídou System.Web.UI.StateBag Dostupný přes vlastnost ViewState Name-Value kolekce View State lze zakázat 42

Control Statet Novinka v ASP.NET 2.0 Součást běžného ViewState, kterou nelze vypnout Uchování stavu nezbytného ke správné funkčnosti ovládacích prvků Obecné pravidlo: Všechny private nebo protected vlastnosti, které je třeba mezi požadavky uložit by měly být v Control State Implementace ponechána na programátorovi nového ovládacího prvku Serializace a deserializace ukládaných hodnot Přepsání metod LoadControlState a SaveControlState Načtení Control State nutné volat manuálně V obsluze události Init volat metodu RegisterRequiresControlState 43

Bezpečnostč Ne každý je tím kým se býti zdá Uživatel by se měl přesvědčit o identitě serveru Server by se měl přesvědčit o identitě uživatele Přidělit některým uživatelům některá práva (authorization) Zkontrolovat identitu uživatelů (authentication) 44

Bezpečnost č -autentikace tik 45 Windows autentikace Ověření ponecháno na IIS Intranetové aplikace Impersonalizace <authentication mode= Windows /> Forms ověření V IIS naveno na Anonymous Internetové aplikace <authenticationmode="forms"> <forms loginurl="url"/> </authentication> Třída FormsAuthentication i

Bezpečnost č -autorizace Po ověření je nutné zjistit zda má uživatel oprávnění požadovat daná data/stránky Sekce authorization ve web.config Povolení nebo zakázání nějakého přístupu <allow /> <deny /> Atributy users uživatelská jména oddělená čárkou? - anonymní uživatel, * -vše roles uživatelské role oddělené čárkouk verbs najakýtyppřístupu pravidlo platí 46 <authorization> <allow verb="get" users="*"/> <allow verb="post" roles="admin, PowerUser"/> <deny verb="post" users="*"/> <deny users="?"/> </authorization>

Membership a Roles Management Doplněk ktřídě FromsAuthetnication Membership Správa uživatelů Statická třída Membership Roles Mangament Správa rolí Statická třída Roles Princip poskytovatelů MembershipProvider id RoleProvider 47

Mebership Některé statické metody CreatUser, DeleteUser, UpdateUser FindUserByName, FindUserByEmail GetNumberOfUsersOnline ValidateUser Některé statické vlastnosti EnablePasswordRetrieval MaxInvalidPasswordAttemps PasswordAttempWindow MinRequiredPasswordLength i dl UserIsOnlineTimeWindow RequiresQuestionAndAnswer Vlastnosti lze také nastavovat ve web.config Atributy přidávaného poskytovatele 48

Roles Některé statické metody AddUserToRole, RemoveUserFromRole CreateRole, DeleteRole, RoleExists GetRolesForUser, GetUsersInRole IsUserInRole Některé statické vlastnosti Enabled Ve web.confige lement <rolesmanager /> 49

Podpůrné ů webové kontrolky <asp:login /> <asp:loginname /> <asp:loginstatus /> t <asp:loginview /> <asp:passwordrecovery /> <asp:changepassword /> <asp:createuserwizard /> 50

Konfigurace Hierarchická struktura konfiguračních XML souborů *.config Kořenový soubor machine.configconfig Každý adresář webu web.config Přidává nebo modifikuje nadřazenou konfiguraci Konfigurační soubory jsou monitorovány Jakákoliv změna se okamžitě projeví Web aplikace se restartuje 51

ASP.NET Configuration Webová aplikace pro konfiguraci webových aplikací VS Web Site ASP.NET Configuration 52