Coimbra ASP Net
Transcript of Coimbra ASP Net
![Page 1: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/1.jpg)
ASP .NET 2.0
Jorge Ricardo Calejo
Microsoft Student Partner
http://weblogs.pontonetpt.com/calejo
![Page 2: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/2.jpg)
Vamos abordar:
� O que é o ASP .net- Web Forms- Web e HTML Server Controls- Programação Inline e Code-Behind- Scripts no Cliente e Servidor- Scripts no Cliente e Servidor- Validações no Cliente e Servidor- Gestão de Estados no Cliente e Servidor- ADO .net- API Membership- Profiles
![Page 3: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/3.jpg)
O que é o ASP .net 2.0
� Sucessor da tecnologia Active Server Pages
� Independente da linguagem utilizada
� Independente do browser cliente
� Informação inserida no cliente é � Informação inserida no cliente é directamente processada no servidor (conceito de Web Form)
� Criação de aplicações Web distribuídas por meio de “Web Services”
![Page 4: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/4.jpg)
Aplicação ASP .net
Page1.
aspx
Web
Forms
Code-
behind
Web.
config
Cache
XML
Data Database
InternetPage2.
aspx
Web
ServicesComponents
behind
pages
global.
asax
machine.
configOutput
![Page 5: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/5.jpg)
Estrutura de Aplicação Web
wwwroot
Inetpub
ProjectA
My DocumentsMy Documents
Visual Studio
Projects
Solution
Bin
ProjectA
Development FilesDevelopment Files
Assembly FilesAssembly Files
WebForm1.aspx
WebForm1.aspx.cs(Code-behind page)
Solution
Solution.sln ProjectA.csproj
ProjectA.dllBuild
![Page 6: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/6.jpg)
Arquict. Cliente Servidor
![Page 7: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/7.jpg)
Web Forms – Modelos de
Objectos� As Web Forms possuem um modelo de
objectos interno constituído por:� Objecto Server
� Representa o Servidor Web� Representa o Servidor Web
� Objecto Page� Representa a página Web
� Objecto Request� Representa o pedido efectuado pelo browser cliente
� Objecto Response� Represente a resposta a enviar ao cliente pelo servidor
![Page 8: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/8.jpg)
Web Forms – Atributo Form
� Dentro do atributo FORM colocam-se controlos denominados “Server Controls”
� Web Server Controls� Intrinsic controls (asp:TextBox)
� Validation controls (asp:RequiredFieldValidator)
� Rich controls (asp:Calendar)
� List-bound controls (asp:DataGrid )
� Internet Explorer Web Controls (http://www.asp.net/IEWebControls/Download.aspx)
� HTML Server Controls� Controlos HTML básicos (DIV, IMG, HR ,...)
![Page 9: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/9.jpg)
HTML Server Controls
� Baseados nos elementos HTML
� Runat=“server”
� Existem no namespace System.Web.UI.HtmlControls
<input type="text" id="txtName"
runat="server" />
![Page 10: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/10.jpg)
Web Server Controls
� Existem no namespace System.Web.UI.WebControls
Sintaxe ASP.net
<asp:TextBox id="TextBox1"
HTML gerado
<asp:TextBox id="TextBox1"
runat="server">Text_to_Display
</asp:TextBox>
type="text" <input name="TextBox1" type="text"
value="Text_to_Display"
Id="TextBox1"/>
![Page 11: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/11.jpg)
Escolher Control Adequado
Preferir trabalhar com um modelo de
programação orientado a objectos
Preferir trabalhar com a estrutura de
objectos HTML
Optar porOptar por
Web Server ControlsWeb Server Controls se:se:
Optar porOptar por
HTML Server ControlsHTML Server Controls se:se:
Necessitar de funcionalidades
especificas tais como um “calendar”
O controlo irá interagir com scripts no
cliente e no servidor
Pretender desenvolver páginas que
serão visualizadas por diversos tipos
de browsers
Pretender fornecer rapidamente
funcionalidades ASP.NET a páginas
HTML já existentes
A largura de banda disponível não
constituir um problemaA largura de banda for limitada
![Page 12: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/12.jpg)
Como programar em ASP .net
� Três métodos de implementar código:
� Colocar o código no mesmo ficheiro que contem os Server
Controls misturado com as definições dos mesmos (mixed)
� Colocar o código no mesmo ficheiro que contem os Server
Controls, mas numa zona separada das definições dos Controls, mas numa zona separada das definições dos
controlos (inline code)
� Colocar o código num ficheiro separado (code-behind pages)
� Por defeito o VS .NET utiliza ficheiros separados de
código (code-behind)
![Page 13: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/13.jpg)
Programação Inline
� Definição dos controls e código no mesmo ficheiro
� Secções separadas para o código e para o HTML
<HTML><HTML>
<asp:Button id="btn" runat="server"/>
</HTML>
<SCRIPT Language="c#" runat="server">
private void btn_Click(object sender,
System.EventArgs e)
{
. . .
}
</SCRIPT>
![Page 14: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/14.jpg)
Programação Code-Behind
� Código e HTML em ficheiros separados� Programadores e Web Designers podem trabalhar de
forma independente
Ficheiros separadosUm só ficheiro
Form1.aspxForm1.aspx Form1.aspxForm1.aspx Form1.aspx.csForm1.aspx.cs
<tags><tags> códigocódigo
códigocódigo
Ficheiros separadosUm só ficheiro
![Page 15: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/15.jpg)
O que são Event Procedures?
� Acções em resposta à interacção do utilizador com os controls numa página
![Page 16: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/16.jpg)
Scripts no Cliente
� Só utilizados com controlos HTML
� Interpretado pelo browser e executado no cliente
� Não acede a recursos do servidor
� <SCRIPT language="language">� <SCRIPT language="language">
Internet .HTM
Pages
![Page 17: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/17.jpg)
Scripts no Servidor
� Utilizado em qualquer tipo de Server Control
� Compilado e executado no servidor
� Tem acesso aos recursos do servidor
� <SCRIPT language=“cs“ runat="server">� <SCRIPT language=“cs“ runat="server">
Internet.ASPX
Pages
![Page 18: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/18.jpg)
Evento PostBack
� O evento Page_Load ocorre em cada pedido á página.
� A propriedade IsPostBack do objecto Page
permite verificar se se trata do primeiro
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
//Código executado somente no primeiro pedido
}
//este código será executado em todos os pedidos
}
permite verificar se se trata do primeiro pedido ou não.
![Page 19: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/19.jpg)
O que é a validação da
informação inserida pelo
utilizador?� Verifica se o valor inserido num controlo está
minimamente coerente com a informação pretendidapretendida
� Bloqueia o processamento da página até que todos os valores sejam validos.
![Page 20: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/20.jpg)
Validação no Cliente e no
Servidor
� ASP.NET cria processos de validação no cliente e no servidor� Validação no Cliente
�Dependente do browser�Resposta imediata Valid?
User Enters
Data Error
Message
�Resposta imediata�Reduz número de pedidos ao servidor
� Validação no servidor
�Repete todas as validações efectuadas no cliente�Permite utilizar recursos externos (p.e. bases de dados)
Valid?
Valid?
No
No
Yes
Yes
Client
Server
Web Application
Processed
![Page 21: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/21.jpg)
Controlos de Validação
O ASP.NET fornece controlos de validação para:
� Comparar valores
� Comparar com uma fórmula pré-definida� Comparar com uma fórmula pré-definida
� Verificar se um valor pertence a um intervalo
� Confrontar com expressões regulares
� Exigir preenchimento de informação
� Sumariar as validações inseridas numa página
![Page 22: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/22.jpg)
Controlos de Validação
<asp:TextBox id="txtName" runat="server" />
11
22
33
Colocar o control na web form
Seleccionar o controlo que se pretende validar
Configurar as propriedades de validação
<asp:Type_of_Validator
id="Validator_id"
runat="server"
ControlToValidate="txtName"
ErrorMessage="Message_for_error_summary"
Display="static|dynamic|none"
Text="Text_to_display_by_input_control">
</asp:Type_of_Validator>
<asp:TextBox id="txtName" runat="server" />
![Page 23: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/23.jpg)
Controlos de Validação
� Pode haver vários controls de validação afectos a um mesmo objecto
� Somente o RequiredFieldValidator verifica se a informação está preenchida
![Page 24: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/24.jpg)
Controlos de Validação
� RequiredFieldValidator
� CompareValidator
� RangeValidator� RangeValidator
� RegularExpressionValidator
� CustomValidator
� ValidationSummary
![Page 25: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/25.jpg)
O que é um User Control?
� Um User Control é um Web Server Control definido pelo programador
� Tem extensão .ascx
� Simplifica a reutilização de componentes de interface dentro de uma aplicação webdentro de uma aplicação web
� Não contém as etiquetas <HTML>, <BODY> e <FORM>
� Possui directiva @Control
� Contem o código para tratar os seus próprios eventos
<%@ Control Language=“c#" %>
![Page 26: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/26.jpg)
Porquê utilizar User
Controls?
Control1.ascx Aplicação A Aplicação B
� Reutilização de componentes de interface e de código
Page2.aspx
Page1.aspx
Page1.aspx
![Page 27: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/27.jpg)
Gestão de Estado
First Name
Please enter your logon information:
John
Login.aspx Login.aspx
Please enter your logon information:
John
First Name
Sem gestão de estado Com gestão de estado
Last Name
John
Submit
Chen
Web ServerWeb Server
Hello John Chen
Greetings.aspx
John
Submit
Chen
Hello
Greetings.aspx
I forget who you
are!!
Last Name
![Page 28: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/28.jpg)
Tipos de Gestão de Estado
No No ServidorServidor No ClienteNo Cliente
Objecto Application
� Informação fica disponível para todos
Cookies
� Ficheiro de texto com informação do � Informação fica disponível para todos
os utilizadores da aplicação
� Ficheiro de texto com informação do
estado
Objecto Session
� Só o utilizador da sessão terá acesso
á informação
Propriedade ViewState
� Permite guardar valores entre pedidos
á página
Base de Dados
� Poderá ser utilizada uma BD para
manter informação do estado
Query strings
� Informação inserida no final da URL
![Page 29: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/29.jpg)
Gestão de Estado no Servidor
� O objecto Application permite armazenar informação de toda a aplicação web
� O uso de Session está condicionado á sessão do browser cliente
� A sessão ASP.NET é identificada pela propriedade � A sessão ASP.NET é identificada pela propriedade SessionID do objecto session
Servidor Web
Cliente
Variáveis de Sessão e de Aplicação
SessionID
![Page 30: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/30.jpg)
Gestão de Estado no Cliente
� Utilização de cookies (persistentes / temporárias)
� Menos fiável que a gestão no servidor
� O utilizador pode apagar as cookies
� Limite ao tamanho da informação
30
� Limite ao tamanho da informação
� Restrições no cliente ao tamanho de ficheiros
Servidor
Cliente
Cookies
![Page 31: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/31.jpg)
ADO .NET
Ligações a Base de Dados
![Page 32: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/32.jpg)
Acesso a Base de Dados
� Namespace System.Data
� Modos de aceder à informação� OLE DB – namespace System.Data.OleDb
� SQL - namespace System.Data.SqlClient� SQL - namespace System.Data.SqlClient
Ap
lica
tiv
o .
Ne
t
Informação
Informação
SQL Server
Objectos
OLE DBOLE DB
Objectos
OLE DB
TDS
![Page 33: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/33.jpg)
Acesso a Base de Dados
![Page 34: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/34.jpg)
ADO .net
� Data Source Controls� Um control Data Source é um objecto no qual se
pode declarativamente definir:
� Informação sobre a conexão com a base de dados
� Informação sobre a conexão com a base de dados
� Informação de pesquisa , como instruções SQL ou métodos a serem invocados.
� Comando para inserir, alterar e apagar dados.
� Parâmetros para comandos SQL
� Outras operações como: pagging, caching e sorting
![Page 35: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/35.jpg)
ADO .net
� ObjectDataSourceEnables you to work with a business object or other class and create Web applications that
rely on middle-tier objects to manage data. Supports advanced sorting and paging scenarios unavailable with the other data source controls.
� SqlDataSourceEnables you to work with Microsoft SQL Server, OLE DB, ODBC, or Oracle databases.
When used with SQL Server, supports advanced caching capabilities. The control also supports sorting, filtering, and paging when data is returned as a DataSet object.
� AccessDataSource� AccessDataSourceEnables you to work with a Microsoft Access database. Supports sorting, filtering, and
paging when data is returned as a DataSet object.
� XmlDataSourceEnables you to work with XML data, especially for hierarchical ASP.NET server controls
such as the TreeView or Menu controls. Supports filtering capabilities using XPathexpressions and enables you to apply an XSLT transformation to the data. The XmlDataSource enables you to update data by saving the entire XML document with changes.
� SiteMapDataSource� Used with ASP.NET site navigation.
Data Source Controls Overview[http://msdn2.microsoft.com/en-us/library/ms227679(VS.80).aspx]
![Page 36: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/36.jpg)
ADO .net
� Ligados a Data Source Controls via DataSourceID
� Suporte a selecção, ordenação, paginação, edição
GridView DetailsView FormView
![Page 37: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/37.jpg)
ADO .net
� Declarative Data Binding
� Configuração no Web.config
<connectionStrings><add name="northwindConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
� Página .aspx
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\dotnet2_0_projectos\northwind.mdb"
providerName="System.Data.OleDb"/></connectionStrings>
<asp:SqlDataSource ID="SqlDataSource1" runat="server“ConnectionString="<%$ ConnectionStrings:northwindConnectionString %>“ProviderName="<%$ConnectionStrings:northwindConnectionString.ProviderName %>"SelectCommand="SELECT [CompanyName… [City] FROM [Customers]">…
![Page 38: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/38.jpg)
ADO .net
![Page 39: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/39.jpg)
ADO .net
� Configurar GridView
![Page 40: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/40.jpg)
ADO .net
![Page 41: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/41.jpg)
API Membership e Login
� Web Site Administration Tool
![Page 42: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/42.jpg)
Membership e Login
� Membership e Login� Objectivos:
� Criar página principal com link para login� LoginStatus control
� Abrir página de login – Login.aspx� Abrir página de login – Login.aspx� Login control
� Validação do utilizador e regresso à página principal com apresentação de sucesso na validação
� LoginView control
� Apresentação do nome do utilizador� LoginName control
� Impedir acesso a páginas para utilizadores não autenticados � Criar rules
![Page 43: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/43.jpg)
API Membership e Login
� Criar Utilizador Membership� Asp.Net Configuration -> Security
� Criar utilizador:� User name� User name
� Password
� …
� Método de acesso:� From the internet
� From a local area network
Nota: A informação de membership é guardado por omissão no Microsoft SQL Server Express , no folder App_Data
![Page 44: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/44.jpg)
API MEMBERSHIP
Controlo de Utilizadores
![Page 45: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/45.jpg)
Criar Regras� Inserir regras de acesso para uma dada
directoria ( p.e. memberpages)
� Utilizar Web Site Administration Tool
� Security -> Create Access Rules
![Page 46: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/46.jpg)
Controlos de Login� Criar página com Login Button
� Inserir controlo LoginStatus� Login
� Este link referencia, por omissão, a página Login.aspx
� Web.config – Form Authentication
<system.web><system.web>
<authentication mode="Forms" />
</system.web>
� Criar página para fazer Login -> Login.aspx
� Inserir controlo Login
![Page 47: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/47.jpg)
Controlos de Login
� Registar novo utilizador
� Criar página register.aspx
� Inserir controlo CreateUserWizard
� Configurar propriedade ContinueDestinationPageUrl para a � Configurar propriedade ContinueDestinationPageUrl para a página principal
![Page 48: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/48.jpg)
Controlos de Login
� ChangePassword:� Namespace: System.Web.UI.WebControls � Sintaxe:
[BindableAttribute(false)]public class ChangePassword : CompositeControl,
INamingContainer INamingContainer � Propriedade SuccessPageUrl
� PasswordRecovery:
� Namespace: System.Web.UI.WebControls
� Sintaxe:
[BindableAttribute(false)]
public class PasswordRecovery : CompositeControl
![Page 49: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/49.jpg)
Class Membership
� ValidateUser da class membership
public void Login_OnClick(object sender, EventArgs args)
{
if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked); NotPublicCheckBox.Checked);
else
Msg.Text = "Login failed. Please check your user name and password and try again.";
}
// codigo html inserir password e username
<body> <form id="form1" runat="server">
<h3>Login</h3> <asp:Label id="Msg" runat="server" /><br />
Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
Password: <asp:Textbox id="PasswordTextbox" runat="server" /><br />
<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
<asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <span >not</span> a public computer. </form> </body> </html>
![Page 50: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/50.jpg)
Class Membership
� Alguns métodos � ValidateUser
� CreateUser
� DeleteUser
� FindUsersByName� FindUsersByName
� GetAllUsers
� GetNumberOfUsersOnline
� ….
![Page 51: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/51.jpg)
PROFILES
Informação de Utilizadores
![Page 52: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/52.jpg)
Objecto Profile
� O objecto Profile permite armazenar informação única de um utilizador. Quando o utilizador visita novamente o site é possível usar a informação armazenada para apresentar ao utilizador uma versão personalizada da aplicação Web.
� Para personalizar uma aplicação é necessário:� Guardar informação usando um identificador de utilizador único,� Reconhecer o utilizador quando visita novamente o site, e� Reconhecer o utilizador quando visita novamente o site, e� Aceder a essa informação quando for necessário.
� Em ASP.NET 1.1 usava-se o objecto Session.� Apresenta a desvantagem da volatilidade – por omissão persiste na
memória, e só durante a sessão.� Também se podia armazenar informação em bases de dados, mas era
necessário escrever código para gravar e retribuir essa informação
� ASP.NET 2.0 introduz um novo objecto Profile que permite persistir os dados do utilizador de um modo muito mais eficiente.
![Page 53: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/53.jpg)
ASP .net 2.0 Profiles� O serviço de Profile de ASP.NET 2.0 simplifica a tarefa de guardar dados por
utilizador.
� No objecto Profile pode-se armazenar objectos de qualquer tipo.
� O serviço de Profile trabalha com utilizadores autenticados e não autenticados.
� Pode-se especificar um provider de Profile, sendo por omissão, usada a instância SqlProfileProvider que armazena os dados do profile no servidor
� Pode-se especificar um provider de Profile, sendo por omissão, usada a instância SqlProfileProvider que armazena os dados do profile no servidor Web local.
� Para poder usar o objecto profile é necessário primeiro activar o serviço de Profile no ficheiro Web.config.
� No ficheiro Web.config configura-se o objecto Profile definindo uma lista de propriedades cujos valores se pretendem manter.
� O serviço de Profile disponibiliza essa informação usando uma API fortemente tipada, acessível em qualquer parte da aplicação.
![Page 54: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/54.jpg)
Uso do objecto Profile� Aplicação Web simples com apenas uma página:
protected void Page_Load(object sender, EventArgs e) {if (Profile.PrimeiroNome != "") {
Panel1.Visible = false;Response.Write("Bem-vindo " + Profile.PrimeiroNome + " " + Profile.UltimoNome);
}else Panel1.Visible = true;
}
protected void Button1_Click(object sender, EventArgs e) {Profile.PrimeiroNome = TextBox1.Text;Profile.UltimoNome = TextBox2.Text;
}
![Page 55: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/55.jpg)
Uso do Objecto Profile� Server Error in '/Profiles' Application.
Compilation Error
Compiler Error Message: CS0117: 'System.Web.Profile.DefaultProfile' does not contain a definition for 'PrimeiroNome‘
Source Error: Line 15: if (Profile.PrimeiroNome != "")
� É necessário activar o serviço de Profile:� É necessário activar o serviço de Profile:No Solution Explorer, Add New Item… , Web Configuration File.No ficheiro Web.config definem-se 2 propriedades – PrimeiroNome e UltimoNome.
<?xml version="1.0"?>
<configuration>
<system.web>
<profile>
<properties>
<add name="PrimeiroNome"/>
<add name="UltimoNome"/>
</properties>
</profile>
</system.web>
</configuration>
![Page 56: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/56.jpg)
Uso do Objecto Profile
� É necessário refrescar a listagem do projecto no Solution Explorer para ver a directoria App_Data criada e o ficheiro de base de dados ASPNET.MDF
![Page 57: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/57.jpg)
Autenticação Windows
� Duplo clique na base de dados abre a janela Solution Explorer com as tabelas da base de dados.
� Seleccionando o menu “Show Table Data” podemos ver o conteúdo de cada tabela.
� Conteúdo das tabelas: aspnet_Profile e aspnet_Users
![Page 58: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/58.jpg)
Autenticação ASP .net Forms� Por omissão ASP.Net usa Autenticação Windows. Na aplicação Web
criada as propriedades do objecto Profile foram associadas ao nome do utilizador Windows.
� Autenticação Windows é útil para aplicações Intranet, mas para autenticar utilizadores externos é melhor usar autenticação ASP.NET Forms.
� Vamos mudar o modo de autenticação de Windows para Forms no ficheiro Web.config:ficheiro Web.config:<?xml version="1.0"?>
<configuration>
<system.web>
<profile>
<properties>
<add name="PrimeiroNome"/>
<add name="UltimoNome"/>
</properties>
</profile>
<authentication mode="Forms" />
</system.web>
</configuration>
![Page 59: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/59.jpg)
Autenticação ASP .net Forms� Server Error in '/Profiles' Application.
This property cannot be set for anonymous users.
Vamos:� Adicionar um nova página Login.aspx com o controlo Login.
� Adicionar um novo utilizador através do menu Website > ASP.NET Configuration.
� Alterar o elemento authentication e adicionar o elemento authorizationdo web.config.
<authentication mode="Forms" >
<forms name=".ASPXAUTH"
loginUrl="Login.aspx“
protection="Validation“
timeout="999999" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
![Page 60: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/60.jpg)
Autenticação ASP .net Forms
Conteúdo das tabelas: aspnet_Profile e aspnet_Users
![Page 61: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/61.jpg)
Mais Informação...
� MSDN Library
� http://msdn.microsoft.com/library
� .net framework center
� http://msdn.microsoft.com/netframework/� http://msdn.microsoft.com/netframework/
� C#
� http://msdn.microsoft.com/vcsharp/
� ASP.net
� http://www.asp.net
� Laboratório .net do ISEP/IPP
� http://www.dei.isep.ipp.pt/labdotnet/
![Page 62: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/62.jpg)
Tutoriais
� http://www.gotdotnet.com/
� http://www.w3schools.com/aspnet/
� http://www.asp-php.net/tutorial/asp.net/
� http://www.dei.isep.ipp.pt/ades/
� http://www.asp.net/learn/videos/default.aspx
![Page 63: Coimbra ASP Net](https://reader033.fdocument.pub/reader033/viewer/2022051013/548ae967b47959e20c8b605a/html5/thumbnails/63.jpg)
� Jorge Ricardo Calejo
� Microsoft Student Partner
� http://weblogs.pontonetpt.com/calejo