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



Podobné dokumenty
Programování v prostředí.net

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

Tvorba informačních systémů

Tvorba informačních systémů

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

APS Administrator.ST

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

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

Vazba ESO9 na MS Outlook a MS Exchange

elan-rs485/ /2017 / rev.0 Strana 1 z 19

APS Administrator.OP

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

Nastavení DCOM. Uživatelský manuál

Formuláře. Internetové publikování. Formuláře - příklad

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

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

Na vod k nastavenı u

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

Bezpečnost v ASP.NET. Ladislav Mrnka lmrnka@students.zcu.cz

KIV/PIA Semestrální práce

Uživatelská příručka 6.A6. (obr.1.)

Groupwise PŘÍSTUP A NASTAVENÍ OVÉ SCHÁNKY PŘES WEBOVÉ ROZHRANÍ

1. DATOVÉ SCHRÁNKY OBECNÝ PŘÍSTUP K DATOVÉ SCHRÁNCE DATOVÉ ZPRÁVY... 3

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

Zabezpečení proti SQL injection

WNC::WebNucleatCreator

Zabezpečení proti SQL injection

Dokumentace k produktu IceWarp Outlook konektor

Inovace a zkvalitnění výuky prostřednictvím ICT Tvorba webových stránek. Ing. Zelinka Pavel Číslo: VY_32_INOVACE_35 17 Anotace:

iviewer pro iphone & ipad & ipod touch Rychlý uživatelský návod

Přihlašování do ISCRŘ přes JIP

WCF RIA Services. aneb jak na RIA aplikace v Silverlightu

Tvorba informačních systémů

Práce s programem MPVaK

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Web-Exam. Průvodce lektora administrační částí

1 Webový server, instalace PHP a MySQL 13

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

Návod na webové rozhraní

APS Web Panel. Rozšiřující webový modul pro APS Administrator

Instalace MS SQL Server Express a MS SQL Server Management Express

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

Už ivatelska dokumentace

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

Uživatelská příručka

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

Artikul system s.r.o. UŽIVATELSKÁ PŘÍRUČKA tel

Artlingua Translation API

NÁVOD K INSTALACI SOLUTIONS

Pantek Productivity Pack. Verify User Control. Uživatelský manuál

Sada 1 - PHP. 09. Formuláře

elan-rf-003 Návod / rev.3 Strana 1 z 13

Přesunutí poštovní schránky ze stávajícího serveru do systému MS Exchange si vyžádá na straně uživatele změnu nastavení poštovního klienta.

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

Obsah SLEDOVÁNÍ PRÁCE... 4

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

Příloha 6. Palety nástrojů

Tvorba aplikací v Oracle Application Express

elan-rf-wi-003 Webové rozhraní / rev.3 Strana 1 z 15

Michal Krátký, Miroslav Beneš

SIMATIC S GPRS. Micro Automation. Promoters Meeting October Aplikace pro GPRS. Vzdálená stanice. Server SINAUT MICRO SC.

SPARKLAN WX-7800A - návod k obsluze Verze 1.2

People Counter v2. Ver. 2.0

1. Webový server, instalace PHP a MySQL 13

Můj účet Uživatelský manuál

Centrální autentizační webový informační systém

Přechod na Firebird 3. Popis migrační utility

IP telefon Cisco SPA303g (SIP) Stručný průvodce instalací a konfigurací

Rychlé nastavení mobilní aplikace Novell Vibe

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

Instalační manuál aplikace

Uživatelská dokumentace

Návod k instalaci, provozu a údržbě brány MODBUS. Návod k instalaci, provozu a údržbě. Brána Modbus

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

Aplikace a služba Money Dnes Publisher v deseti krocích

ucetni-program-pohoda.cz Uživatelský návod a nastavení Instalace str. 2 Uživatelské práva str. 3

Popis logování v aplikačním serveru

Instalace Windows 2012 Správa účtů počítačů

Průvodce nastavením. Google Apps for Work

Pravidla a plánování

Versiondog Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014

TECHNICKÁ DOKUMENTACE SOCIÁLNÍ SÍŤ MRSHARE. David Malát, Adam Novák, David Vurbs, Dominik Walta. SPŠ Na Proseku 2012/13. Pod velením Davida Vurbse

Rezervační systém Tvorba WWW stránek

Dokumentace. k modulu. podnikový informační systém (ERP) Datové schránky

[1] ICAReNewZEP v1.2 Uživatelská příručka

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

Administrace služby - GTS Network Storage

Impersonation. in Windows Domain only. server service account -> client account vjj 1

1 of :27

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

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.

PŘÍRUČKA SÍŤOVÝCH APLIKACÍ

Athena Uživatelská dokumentace v

PŘETĚŽOVÁNÍ OPERÁTORŮ

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

Transkript:

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

Obsah Kontrolky Validace Stavy Bezpečnost 2/27

Web formuláře Kontrolky na formuláři označené atributem runat="server" HTML kontrolky těsně kopírují rozhraní dané HTML specifikací příklad <input type ="text" runat ="server"></ input> Web kontrolky unifikované rozhraní pro práci s web formuláři příklad <asp:textbox runat ="server"></asp:textbox> 3/27

Uživatelské kontrolky Jednoduchá kontrolka oddědit od Control nebo WebControl přidat data a logiku kontrolky překrýt metodu Render zkompilovat do assembly nakopírovat assembly do adresáře bin zaregistrovat kontrolku <%@ Register TagPrefix ="Custom" Namespace ="CustomControls" Assembly = "CustomControls" %> 4/27

Uživatelské kontrolky Komponované kontrolky celá stránka lze převést na kontrolku odstranit elementy form, body, head, html změnit @Page na @Control změnit příponu na.ascx při použití code-behind dědit od UserControl 5/27

Validace na straně serveru Událost se provede teprve po odeslání stránky zpět na server Možnost nastavit vlastnost AutoPostBack, odeslání na server se provede automaticky při změně textu Po odeslání na server provést validaci a případné chyby odeslat zpět klientovi Vhodné pro složité kontroly porovnání proti DB Nevhodné pro jednoduché kontroly zbytečné zatížení spojení 6/27

Validace na straně klienta Použití validátoru RequiredFieldValidator požaduje vyplněný text CompareValidator porovnání vůči konstantě Operace Equal, NotEqual,... RangeValidator kontroluje rozsah vstupu RegularExpressionValidator porovnává s regulárním výrazem CustomValidator libovolná obsluha validace vlasnost IsValid 7/27

Validace na straně klienta Vlastnosti validátoru ControlToValidate nastavení vstupní kontrolky, která se má validovat ErrorMessage zpráva, která se má zobrazit při chybě EnableClientScript pokusit se o validaci na straně klienta Funkce validátoru validace na straně klienta proběhne pouze v případě že je nastaven EnableClientScript klient podporuje DHTML v opačném případě probíhá validace na serveru 8/27

Validace na straně klienta ValidationSummary možnost zobrazit chyby z validátoru na jednom místě vše se nastavuje automaticky možnost zobrazit text nebo dialog u validátoru vhodné nastavit Text na * a umístit je k odpovídajícím kontrolkám zobrazení se provede až po stisku tlačítka, nemusí dojít k odeslání na server 9/27

Stavy Důležité pro dynamiku stránek Umožňuje zásah uživatele do aplikace V ASP.NET následující kategorie stavu stav aplikace (application state) stav relace (session state) stav zobrazení (view state) stav kolácku (cookie state) 10/27

Stavy Stav je informace, která přetrvává Obvykle je informace složena z názvu (klíče) a hodnoty Např. CenaZboží = 300 VybranáLokalita = České Budějovice Login = Superuživatel 11/27

Stav aplikace Týká se celé aplikace (všech stránek, které jsou součástí projektu) Vytvoří se v okamžiku připojení prvního uživatele, přežívá dokud není služba zastavena či restartována Vhodné pro malá data často používaná data stabilní data 12/27

Stav aplikace Možnost získat stav z HttpApplicationState Application K jednotlivým položkám možno přistupovat pomocí stringového indexeru Příklad this.application["libovolnyobjekt"] = new LibovolnyObjekt; LibovolnyObjekt o =(LibovolnyObjekt) this.application["libovolnyobjekt"]; 13/27

Stav aplikace Nutnost řešit přístupové konflikty (stav společný pro všechny uživatele) Muže způsobit nekonzistenci dat Možnost/nutnost uzamknout přístup k proměnným Application.Lock() čeká, dokud si neuzme aplikaci pro sebe Application.UnLock() uvolní aplikaci pro další zájemce (nezapomenout zavolat!) 14/27

Stav relace Komunikace serveru s jedním uživatelem v jednom prohlížeči ASP.NET řeší do velké míry automaticky Při zahájení relace se vygeneruje session ID, které se předává mezi serverem a klientem jako cookies musí být povoleno v prohlížeči jako část adresy funguje jen pro relativní adresy http://localhost/aplikace/ (es5kdprrks1m3l55yqyvqw45)/webform1.aspx Nutno nastavit v souboru web.config <sessionstate cookieless="true"> 15/27

Stav relace Možnost získat z HttpSessionState Session Indexery string int Vlastnosti bool IsCookieless jak se předává (cookie/adresa) bool IsNewSession nová relace int Timeout (v minutách) jak dlouho má být relace platná při neaktivitě 16/27

Stav relace Ne každá stránka potřebuje posílat relaci Možnost nastavit přístup k relaci Atribut EnableSessionState direktivy Page <\%@ Page EnableSessionState=... True čení i zápis (výchozí hodnota) Readonly pouze čtení False nenačte se, nelze ani zapsat Stav relace je možno ukládat i mimo proces serveru State service SQL server 17/27

Stav zobrzazení ViewState Týká se jen po sobě jdoucích požadavků na tutéž stránku Obsahuje stavové informace všech kontrolek na stránce Realizováno jako skrytá položka formuláře name= VIEWSTATE" value="ddwtmtm1... 18/27

Koláčkový stav Cookie state Cookie je technika pro uchování stavu Není standardizovaná Cookie (koláček) dvojice název, hodnota Přenáší se s každým požadavkem Je možné koláčky přidávat Chová se podobně jako session state 19/27

Koláčkový stav Možnost získat HttpCookieCollection Request.Cookies Indexery int string Ukládá jen stringy! Příklad string s = Request.Cookies["barva"].Value; 20/27

Koláčkový stav Přidání koláčku třída HttpCookie string Name string Value DateTime Expires Přidání do kolekce Response.Cookies 21/27

Bezpečnost Uživatel by se mel přesvědčit o identitě serveru Server by se měl přesvědčit o identitě uživatele zkontrolovat identitu uživatelů Authentication přidělit uživatelům práva Authorization 22/27

Bezpečnost Správce webu autorizuje uživatele Uživatelé se autentikují vytvoří se autentikační koláček okolnosti vytvoření určuje autor webu většinou na základě jména a hesla hodnota koláčku by neměla být triviální šifrování 23/27

Konfigurace < authentication mode ="Forms"> <foms loginurl ="login.aspx"> <credentials passwordformat ="Clear"> <user name ="uzivatel" password =""/> <user name ="admin" password ="adminovoheslo"/> </credentials> </forms> </authentication> <authorization> <allow users ="admin"/> <deny users ="*"/> </authorization> 24/27

Třída FormsAuthentication HttpCookie GetAuthCookie(string, bool) chci ověřit uživatele, ověření má přetrvat i po ukončení prohlížeče void RedirectFromLoginPage(string, bool) uživatel byl úspešně ověřen, ověření má přetrvat void SignOut() odhlášení uživatele string HashPasswordForStoringInConfigFile(string,string) vytvoří hashované heslo metody MD5, SHA1 25/27

Příklad <html> <script language ="C#" runat ="server"> void Login_Click(Object sender,eventargs e) { if(formsauthentication.authenticate(username.text, password.text)) FormsAuthentication.RedirectFromLoginPage(username.Text,fals } </ script> <body> <form runat ="server"> Jméno: <asp:textbox id=username runat ="Server"/><br /> Heslo: <asp:textbox id=password textmode =Password runat ="Server <asp:button id=button onclick ="Login_Click" text ="Login" runat= </form> </body> </html> 26/27

Konec 27/27