La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

ASP.NET con Visual Studio.NET Giuseppe Dimauro MSDN Regional Director Code Architects s.r.l.

Presentazioni simili


Presentazione sul tema: "ASP.NET con Visual Studio.NET Giuseppe Dimauro MSDN Regional Director Code Architects s.r.l."— Transcript della presentazione:

1 ASP.NET con Visual Studio.NET Giuseppe Dimauro MSDN Regional Director v-giudim@microsoft.com Code Architects s.r.l.

2 Agenda Web Forms Applicazioni ASP.NET Sicurezza in applicazioni Web Configurazione e ottimizzazione

3 Web Forms Cos’è una Web Form ? Modello del codice Ciclo di vita Eventi Server Side Controlli Server Validazione

4 Web Forms Modello del codice Code Behind Forte disaccoppiamento tra la logica applicativa e quella di presentazione Object Oriented Event Driven

5 Web Forms ASP.NET Page Life Cycle Simile ad applicazioni Win32 Gli eventi vengono scatenati quando la pagina viene creata Form_Initialize() ~ Page_Init() Form_Load() ~Page_Load() Form_Activate() ~Page_PreRender() Form_Unload() ~ Page_Unload()

6 Web Forms Eventi Server Side Runat=“server” Button1_Click(Sender as Object, e as EventArgs) Button1.Text = “Save”

7 Web Forms Server Controls Più di 40 controlli Built In Compatibiltà da HTML 3.2 in sù Gli eventi vengono propagati e gestiti sul server Controlli basilari textbox, checkbox, radio, button textbox, checkbox, radio, button Controlli avanzati AdRotator, Calendar, DataGrid, Validator AdRotator, Calendar, DataGrid, Validator

8 Web Forms Controlli semplici - basilari text1.text = “Hello World” text1.text = “Hello World” check1.checked=True check1.checked=True button1_onClick() button1_onClick() DropDownList1.SelectedItem.Text = “Hello” DropDownList1.SelectedItem.Text = “Hello”

9 Web Forms Controlli Server avanzati DataGrid Defined by Defined by Ordinamento delle colonne Ordinamento delle colonne Editing in-line Editing in-line Tabelle HTML Tabelle HTML DataBinding DataBinding Paging Paging

10 Web Forms Controlli Server avanzati Validazione Required Validator Control Required Validator Control Range Validator Control Range Validator Control Compare Validator Control Compare Validator Control Regular Expression Validator Regular Expression Validator Custom Validator Control Custom Validator Control Esempio: Esempio:

11 Agenda Web Forms Applicazioni ASP.NET Sicurezza in applicazioni Web Configurazione e ottimizzazione

12 Application_OnStartApplication_OnEndSession_OnStartSession_OnEnd Applicazioni ASP.NET confronto con ASP tradizionale (global.asa)

13 Applicazioni ASP.NET Eventi in Global.ASAX Prima richiesta Application_Start Application_Start Prima richiesta per ogni utente Session_Start Session_Start Ogni richiesta Application_BeginRequest Application_BeginRequest Application_Authenticate Application_Authenticate Application_EndRequest Application_EndRequestErrori Application_Error Application_Error Log out utenti / Time out Sessioni Session_End Session_End Web Server Shutdown Application_End Application_End

14 Application_BeginRequest Gestione di risorse virtuali Gestione di risorse virtuali Testo da includere ad ogni avvio di pagina Testo da includere ad ogni avvio di paginaApplication_EndRequest Testo da aggiungere alla fine di ogni pagina Testo da aggiungere alla fine di ogni paginaApplication_Error Invio di mail di alert Invio di mail di alert Logging di errori Logging di errori Messaggi di errore personalizzati Messaggi di errore personalizzati Applicazioni ASP.NET Utilizzo degli eventi in Global.ASAX

15 Session_End Logging di fine sessione. Logging di fine sessione.Application_End Logging di fine applicazione. Logging di fine applicazione.Application_Start Caricamento di informazioni specifiche del sito Caricamento di informazioni specifiche del sito ASP.NET Applications Utilizzo degli eventi in Global.ASAX

16 Variabili globalmente visibili nell’applicazione Application(“NomeAzienda”) Lock e unlock di variabili applicative … Application.lock Application.lock Application(“GlobalCounter”) = NewValue Application(“GlobalCounter”) = NewValue Application.unlock Application.unlock ASP.NET Applications Salvare lo stato Applicativo

17 Variabili con visibiltà di sessione Visibili da qualsiasi pagina del sito Session(“UserID”) = 5 UserID = Session(“UserID”) Applicazioni ASP.NET Stato per Sessione

18 ASP Session State Solo “Server Affinity” Solo “Server Affinity” Dipendenza da cookies Dipendenza da cookies Nessuna ”Fault Tolerance” Nessuna ”Fault Tolerance” ASP.NET Session State Supporto per Web Garden e Server Farm Supporto per Web Garden e Server Farm Funziona anche senza cookie Funziona anche senza cookie Fault tolerance Fault tolerance Applicazioni ASP.NET ASP vs. ASP.NET State

19 Le informazioni di configurazione sono memorizzate in Web.Config <sessionStateInproc=“true”mode=“sqlserver”cookieless=“false”timeout=“20” sqlconnectionstring=“data source=127.0.0.1;user id=sa;password=“” stateConnectionString="tcpip=127.0.0.1:4 2424" /> </sessionState> Applicazioni ASP.NET Configurazione del “Session State”

20 Mode InProc – Variabili di sessione convenzionali. Memorizzate nello spazio di indirizzamento del web server. InProc – Variabili di sessione convenzionali. Memorizzate nello spazio di indirizzamento del web server. Stateserver – Le informazioni di sessione sono archiviate su di un server esterno in memoria. Stateserver – Le informazioni di sessione sono archiviate su di un server esterno in memoria. SQLServer – Le informazioni di sessione sono salvate in un database SQL. SQLServer – Le informazioni di sessione sono salvate in un database SQL.Cookieless Determina se le sessioni possono essere “Cookieless” Determina se le sessioni possono essere “Cookieless” Valori possono essere true oppure false Valori possono essere true oppure falseTimeOut Permette di impostare il timeout di default del sito web Permette di impostare il timeout di default del sito web Applicazioni ASP.NET Configurazione del “Session State”

21 Agenda Web Forms Applicazioni ASP.NET Sicurezza in applicazioni Web Configurazione e ottimizzazione

22 Sicurezza in applicazioni Web Concetti di security implementati AutenticazioneAutorizzazioneImpersonificazione

23 Sicurezza in applicazioni Web Autenticazione Windows Basic Basic Digest Digest Integrated IntegratedPassportForm

24 Sicurezza in applicazioni Web Windows Authentication Impostabile tramite applet amministrativa di Internet Information Service (IIS)

25 Sicurezza in applicazioni Web Windows Authentication Configurabile in ASP.NET attraverso il file Web.config <security> </security>

26 Sicurezza in applicazioni Web Windows Authentication Da codice risulta essere particolarmente semplice accedere alla identità dell’utente web Dim UserName As String UserName = User.Identity.Name Gruppi di utenti NT vengono rimappati automaticamente su ruoli ASP.NET If User.IsInRole(“Administrators”) Then…

27 Sicurezza in applicazioni Web Form Authentication Il sito web gestisce autonomamente la sicurezza, non IIS IIS viene configurato per permettere accesso anonimo IIS viene configurato per permettere accesso anonimo Web.Config è impostato in modo tale da forzare l’autenticazione attraverso form web applicative Web.Config è impostato in modo tale da forzare l’autenticazione attraverso form web applicative </forms></authentication><authorization> </authorization> Ogni utente non autenticato verrà rediretto su “Registration.aspx”

28 Sicurezza in applicazioni Web Form Authentication La form deve richiedere le informazioni: User ID e Password L’autenticazione avviene via codice: FormAuthentication.RedirectFromLoginPage(UserName, False) RedirectFromLoginPage Contrassegna un utente come autenticato Contrassegna un utente come autenticato Riporta il controllo sulla pagina web precedentemente intercettata Riporta il controllo sulla pagina web precedentemente intercettata Se l’utente o un link url ha richiesto esplicitamente la pagina di login il controllo passa a Default.aspx Se l’utente o un link url ha richiesto esplicitamente la pagina di login il controllo passa a Default.aspx Permette la persistenza delle informazioni di autenticazione in un cookie Permette la persistenza delle informazioni di autenticazione in un cookie

29 Sicurezza in applicazioni Web Form Authentication - Dichiarativa Per siti molto semplice è possibile codificare lo User ID e la password direttamente nel file Web.config </credentials>

30 Sicurezza in applicazioni Web Form Authentication - Applicativa Autenticazione da codice applicativo SQL = “Select * From Users ” & _ “Where UserID = ‘” & UserName & “’” If UserFoundInDataBase then FormAuthentication.RedirectFromLoginPage(UserNam e,false) Else lblLoginError.Text = “User Not Found or Invalid Password” end if

31 Sicurezza in applicazioni Web Ruoli JaneJane JillJill JohnJohn JennyJenny JamieJamie RDRD AdminsAdmins Page RD Content Page Admin Content

32 Sicurezza in applicazioni Web Ruoli Sviluppo di applicazioni basate su ruoli Accesso a pagine Accesso a pagine Contenuto delle paigine personalizzabile in dipendenza del ruolo Contenuto delle paigine personalizzabile in dipendenza del ruolo Dopo il deployment è possibile assegnare gli utenti ai ruoli

33 Sicurezza in applicazioni Web Ruoli Assegnazione dei ruoli da applicazione Sub Application_AuthenticateRequest(ByVal Sender As Object, ByVal e As EventArgs) If request.IsAuthenticated = True Then sql = “select role from roles where userid=‘“ & UserID & “’” ‘ Get Roles from Result Set context.User = New GenericPrincipal(user, roles) End If End Sub

34 Sicurezza in applicazioni Web Ruoli Visualizzazione dei contenuti di una pagina web in dipendenza dei ruoli applicativi If User.IsInRole(“HumanRes”) Then cmdEditSalary.Visible = true End If

35 Sicurezza in applicazioni Web Impersonificazione Windows Authentication Web.config<identity> <impersonation enable="true" <impersonation enable="true" name="username" name="username" password="password" /> password="password" /></identity>

36 Agenda Web Forms Applicazioni ASP.NET Sicurezza in applicazioni Web Configurazione e ottimizzazione

37 Configurazione e ottimizzazione Web.Config File di configurazione del sito Fa parte del sito Mantiene buona parte delle informazioni di configurazione del sito web Manutenzione e deployment semplice Le modifiche hanno effetto immediato

38 Configurazione e ottimizzazione Architettura di configurazione gerarchica Le impostazioni di configurazione di Web.Config sono ereditate gerarchicamente Configurazione della macchina (machine settings): Configurazione della macchina (machine settings): (Winnt\Microsoft.NET\Version\) (Winnt\Microsoft.NET\Version\) Web Application Root Directory Web Application Root Directory Sotto directory Sotto directory

39 Configurazione e ottimizzazione Architettura di configurazione gerarchica Le impostazioni possono essere indirizzate ad una particolare directory applicativa utilizzando il tag Le impostazioni possono essere indirizzate ad una particolare directory applicativa utilizzando il tag <configuration> <system.web><security><authorization> </authorization></security></system.web></location></configuration>

40 Configurazione e ottimizzazione Opzioni di configurazione personalizzabili Alcuni esempi: AppSettings AppSettings CustomErrors CustomErrors Trace Settings Trace Settings Authentication Authentication Session Settings Session Settings Browser Capabilities Browser Capabilities

41 Configurazione e ottimizzazione Personalizzazione delle impostazioni Impostazioni custom in Config.Web <configuration><appSettings> <add key="DSN" value="server=localhost… </appSettings></configuration> Accesso da codice DSN = ConfigurationSettings.AppSettings("DSN")

42 Configurazione e ottimizzazione Personalizzazione delle impostazioni Redirezione di pagine di errore: </customErrors> </customErrors>

43 Configurazione e ottimizzazione Personalizzazione delle impostazioni Tracing <trace enabled=“true" requestLimit="10"pageOutput=“true"traceMode="SortByTime"/>

44 Configurazione e ottimizzazione Personalizzazione delle impostazioni Opzioni di trace Enabled Enabled Le informazioni di trace verranno arichiviate e saranno raggiungibili attraverso: Le informazioni di trace verranno arichiviate e saranno raggiungibili attraverso: http://site/trace.axd http://site/trace.axd RequestLimit RequestLimit Impostazione del limite di occupazione del trace Impostazione del limite di occupazione del trace PageOutput PageOutput Abilita il trace direttamente sulla pagina web. Abilita il trace direttamente sulla pagina web. TraceMode TraceMode Opzioni di ordinamento delle informazioni di trace. Le informazioni di trace possono essere ordinate per tempo o categoria. Opzioni di ordinamento delle informazioni di trace. Le informazioni di trace possono essere ordinate per tempo o categoria.

45 Configurazione e ottimizzazione Personalizzazione delle impostazioni Scrittura nel del file di log Trace.Write(“Page_Load”,”Entering Event”) Trace.Warn(“GetCustomer”,”Invalid Argument”)

46 Configurazione e ottimizzazione Page Output Caching Pagine molto statiche Aumento delle performance molto elevato

47 Configurazione e ottimizzazione Fragment Caching Porzioni dinamiche di una pagina Solo alcune parti della pagina sono statiche: Barra di menu Barra di menu Elenchi presi da database Elenchi presi da database Possono essere raggrupati in uno “User Control” con caching attivato

48 Configurazione e ottimizzazione API per gestire la cache Gestione della cache da Application Program Interface Cache.Insert( _ Key, _ Value, _ CacheDependency, _ AbsoluteExpiration, _ SlidingExpiration, _ Priority, _ PriorityDecay, _ Callback)

49 Configurazione e ottimizzazione API per gestire la cache Key Chiave di lookup del valore di cache Chiave di lookup del valore di cacheValue Entità applicativa da salvare – ricercare dalla cache Entità applicativa da salvare – ricercare dalla cacheCacheDependency La entità in cache può scadere (expire) in dipendenza di un file, una directory oppure quando un elemento in cache viene modificato. La entità in cache può scadere (expire) in dipendenza di un file, una directory oppure quando un elemento in cache viene modificato.

50 Configurazione e ottimizzazione API per gestire la cache AbsoluteExpiration Istante preciso in cui l’elemnto in cache scade. Istante preciso in cui l’elemnto in cache scade.SlidingExpiration Intervallo di tempo di inattività dopo di che l’elemento in cache scade. Intervallo di tempo di inattività dopo di che l’elemento in cache scade.Priority Priorità associata ad un elemento in cache. Scadono prima elementi con priorità inferiore. Priorità associata ad un elemento in cache. Scadono prima elementi con priorità inferiore.PriorityDecay “Fine tuning” per accelerare o decelerare la scadenza di un elemento. “Fine tuning” per accelerare o decelerare la scadenza di un elemento.

51 Configuration e ottimizzazione Tracing Tracing Informazioni temporali Informazioni temporali Informazioni riguardo alla gerarchia di controlli web “renderizzati” durante una sessione di “post-back”. Informazioni riguardo alla gerarchia di controlli web “renderizzati” durante una sessione di “post-back”. L’ammontare in termini occupazione di “view- state” utilzzato. L’ammontare in termini occupazione di “view- state” utilzzato. Dimensioni in termini di HTML per ogni controllo visibile sulla pagina. Dimensioni in termini di HTML per ogni controllo visibile sulla pagina.

52 Configuration and Monitoring Tracing Abilitare il tracing su una pagina specifica Comandi di trace inseriti direttamente nel codice Trace.Write(“Custom Trace”, “Begin Load DataSet”)

53 Abbiamo visto … Web Forms Applicazioni ASP.NET Sicurezza in applicazioni Web Configurazione e Monitoraggio

54 Risorse … Sito MSDN msdn.microsoft.com msdn.microsoft.com Siti relativi ad ASP.NET msdn.microsoft.com/library/dotnet/cpguide/cpconaspwebforms.h tm msdn.microsoft.com/library/dotnet/cpguide/cpconaspwebforms.h tm msdn.microsoft.com/library/dotnet/cpguide/cpconaspwebforms.h tm msdn.microsoft.com/library/dotnet/cpguide/cpconaspwebforms.h tm msdn.microsoft.com/library/dotnet/cpguide/cpconaspnetapplicati ons.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspnetapplicati ons.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspnetapplicati ons.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspnetapplicati ons.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspstatemanag ement.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspstatemanag ement.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspstatemanag ement.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspstatemanag ement.htm msdn.microsoft.com/library/dotnet/cpguide/cpconoptimizingaspa pplications.htm msdn.microsoft.com/library/dotnet/cpguide/cpconoptimizingaspa pplications.htm msdn.microsoft.com/library/dotnet/cpguide/cpconoptimizingaspa pplications.htm msdn.microsoft.com/library/dotnet/cpguide/cpconoptimizingaspa pplications.htm msdn.microsoft.com/library/dotnet/cpguide/cpconsecuringaspnet webapplications.htm msdn.microsoft.com/library/dotnet/cpguide/cpconsecuringaspnet webapplications.htm msdn.microsoft.com/library/dotnet/cpguide/cpconsecuringaspnet webapplications.htm msdn.microsoft.com/library/dotnet/cpguide/cpconsecuringaspnet webapplications.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspcachingfeat ures.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspcachingfeat ures.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspcachingfeat ures.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspcachingfeat ures.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspnetconfigur ationconcepts.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspnetconfigur ationconcepts.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspnetconfigur ationconcepts.htm msdn.microsoft.com/library/dotnet/cpguide/cpconaspnetconfigur ationconcepts.htm

55


Scaricare ppt "ASP.NET con Visual Studio.NET Giuseppe Dimauro MSDN Regional Director Code Architects s.r.l."

Presentazioni simili


Annunci Google