4
1. Qual a principal diferença entre página estática e página dinâmica? 2. Páginas apsx podem ser escritas usando Visual Basic.Net ou C#? Isto é correto? 3. Qual o nome do evento que é executado cada vez que a página for carregada? 6. Quais as duas formas de adicionar um Web Control (caixa de texto, botão de radio) em uma página? 7. O que eu preciso perguntar para uma EMPRESA para verificar se a hospedagem oferecida dá ao suporte ao site que estou criando usando o Visual Studio 2010? 13. Quando usando uma caixa de texto, qual a propriedade é referenciada para determinar o valor digitado pelo usuário? 15. Qual a função += e -=? Dê exemplos? 16. Qual o tipo de variável para guardar valores de 0 até 10000? 17. O que são argumentos de um método? 18. O que é retorno de um método? 19. Qual o tipo de retorno de um método que não retorna nada? 20. Qual a quantidade mínima e máxima de argumentos que um método pode receber? 21. Qual a quantidade mínima e máxima que um método pode retornar? 22. As estruturas de controle alteram o fluxo do programa ou não? 23. Se você deseja imprimir 30 vezes a palavra teste na tela, qual a estrutura de controle que deve ser usada? 25 Qual o serviço disponibilizado pela porta 80? XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Não há um formulário de entrega. Ao concluir, mostre ao seu professor e tenha sua nota já conferida. A) O ASP.NET já possui um conjunto de funcionalidades destinadas à implementação do login de usuários que veremos daqui a algumas

ASP

Embed Size (px)

DESCRIPTION

Exercicios de ASP

Citation preview

Page 1: ASP

1. Qual a principal diferença entre página estática e página dinâmica?2. Páginas apsx podem ser escritas usando Visual Basic.Net ou C#? Isto é

correto?

3. Qual o nome do evento que é executado cada vez que a página for carregada?

6. Quais as duas formas de adicionar um Web Control (caixa de texto, botão de radio) em uma página?

7. O que eu preciso perguntar para uma EMPRESA para verificar se a hospedagem oferecida dá ao suporte ao site que estou criando usando o Visual Studio 2010?

13. Quando usando uma caixa de texto, qual a propriedade é referenciada para determinar o valor digitado pelo usuário?

15. Qual a função += e -=? Dê exemplos?

16. Qual o tipo de variável para guardar valores de 0 até 10000?

17. O que são argumentos de um método?

18. O que é retorno de um método?

19. Qual o tipo de retorno de um método que não retorna nada?

20. Qual a quantidade mínima e máxima de argumentos que um método pode receber?

21. Qual a quantidade mínima e máxima que um método pode retornar?

22. As estruturas de controle alteram o fluxo do programa ou não?

23. Se você deseja imprimir 30 vezes a palavra teste na tela, qual a estrutura de controle que deve ser usada?

25 Qual o serviço disponibilizado pela porta 80?

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Não há um formulário de entrega. Ao concluir, mostre ao seu professor e tenha sua nota já conferida.

A) O ASP.NET já possui um conjunto de funcionalidades destinadas à implementação do login de usuários que veremos daqui a algumas aulas. Neste exercício, porém, você vai implementar do zero a funcionalidade de login.

Crie um novo web site ou projeto em ASP.NET;

Crie uma tabela chamada Usuarios, com 3 campos: id (int, chave primária, autoincremento), usuario (varchar 10) e senha (varchar 8);

Crie uma página chamada Login.aspx (menu WebSite > Add New Item> Selecionar Web Form);

Page 2: ASP

Nesta página, crie um Painel, e neste Painel coloque uma caixa de login e uma caixa de senha e, é claro, os respectivos rótulos para cada uma das caixas. Use o componente TextBox para criar cada uma das caixas;

Associe os rótulos às caixas usando a propriedade AssociatedControlID do Label;

Altere o valor da propriedade TextMode da TextBox para renderizar a caixa de senha como um componente de senha;

Crie também um botão nesta página. Este botão, ao ser clicado, verifica no banco de dados se existe um usuário com o login e a senha indicados. O comando SELECT para realizar esta operação pode ser algo semelhante a SELECT * from usuario where usuario=@usuario and senha=@senha . Verifique o número de registros que foram retornados desta consulta. Se o número for igual a 1, é sinal que o login e a senha são válidos;

Se o login for válido, o usuário deve ser redirecionado (Response.Redirect) à uma página chamada chat.aspx.

Se o login for inválido, o usuário permanece na mesma página. Logo abaixo do Painel uma mensagem indica quantas vezes o usuário tentou se autenticar de maneira inválida. Para você conseguir fazer isso deve usar uma variável de sessão (Session). Na primeira vez que o usuário abre a página (indicada pela propriedade Page.IsPostBack) esta variável deve ter valor 1. A cada tentativa frustrada, a variável é incrementada.

Após 5 tentativas frustradas, oculte o painel (propriedade Visible) e exiba uma mensagem de acesso negado.

As perguntas abaixo questionam alguns pontos sobre a resolução de seu trabalho e sugerem modificações para melhorá-lo. Responda ao que se segue em uma página chamada Respostas.aspx dentro de seu código e, se desejar implemente as modificações sugeridas:

A tabela usuário armazena as informações de senha como um texto. Qual é o problema de segurança desta abordagem?

Como você poderia implementar uma solução de segurança que resolva o problema descrito usando o seguinte fragmento de código:

string s=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(“banana”, “MD5″)

É possível descobrir a senha do usuário se você armazenar o valor MD5 desta senha?

É possível retornar a senha ao usuário (Esqueci Minha Senha), se você armazenar o valor MD5 desta senha?

Ao submeter os dados de login, foi sugerida a consulta SELECT * from usuario where usuario=? and senha=? . Não é a solução mais eficiente. Qual é o motivo?

Proponha uma solução mais eficiente usando funções de agregação ( SELECT COUNT(*) from usuario where usuario=@usuario and senha=@senha). Ao invés de usar a função ExecuteNonQuery para retornar os resultados, use a função ExecuteScalar:

int num = Convert.ToInt32(com.ExecuteScalar()); // Num é o número de registros retornados.

Page 3: ASP

Abra a página Login.aspx em dois navegadores diferentes ao mesmo tempo. Forneça um login e senha inválidos para cada uma das janelas. A partir desta experiência você acha que a variável de sessão está associada ao IP ou ao navegador?

B) A classe Application permite o compartilhamento de variáveis entre diferentes usuários. Você vai criar uma página que simula um chat bastante simplificado.

Crie uma página chamada Chat.aspx. Para que seu chat tenha uma resposta rápida vamos trabalhar com recarregamento parcial da página via Ajax. Para usar esta técnica após criar a página jogue na sua página o componente ScriptManager que está na aba AJAX Extensions.

Dentro da aba AJAX Extensions também há um componente chamado UpdatePanel. Coloque em sua página após o ScriptManager. Todos os componentes “ajaxificáveis” deverão estar dentro do UpdatePanel.

Assim, dentro do UpdatePanel coloque um botão e uma lista. Fora do UpdatePanel coloque uma caixa de texto. A caixa de texto será usada para as mensagens, o botão será usado para envio das mensagens e a lista exibirá as novas mensagens a medida que elas chegam;

Para que a listagem seja atualizada de tempos em tempos, use o componente Timer. Tal componente permite que se chame uma função em um intervalo qualquer. O tempo é determinado pela propriedade Interval e a função a ser chamada é o objetivo do evento Tick.

IMPORTANTE: Se você tentar acessar a página chat.aspx sem ter se logado, deve ser direcionado à página Login.aspx imediatamente.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX