Desenvolvimento de Website com ASP 3.pdf

16
Página Inicial Autores Livros Registrese Forum Download Newsletter Empregos Contato Doação Se o C# Brasil tem sido útil para você, ajudeo fazendo uma doação. Social Media Pesquisar Pesquisar por: Pesquisar Enquetes Você acha que o C# Brasil deveria fazer mais sorteios? Sim Não Vote Ver Resultados Arquivo de enquetes Encontrenos no Facebook C# Brasil no Google+ Desenvolvimento de Website com ASP.NET e SQL Server – Parte 3 Publicado 5 de fevereiro de 2012 | Por Raphael Cardoso | 64 comentários Olá caro leitor! Dando continuidade aos artigos anterior sobre desenvolvimento de website com ASP.NET e SQL Server. Se você ainda n acompanhou essa série de artigos sobre o desenvolvimento de website com ASP.NET e SQL Server acesse: Desenvolvimento de Website com ASP.NET e SQL Server – Parte 1 Desenvolvimento de Website com ASP.NET e SQL Server – Parte 2 Desenvolvimento de Website com ASP.NET e SQL Server – Parte 3 Desenvolvimento de Website com ASP.NET e SQL Server – Parte 4 Desenvolvimento de Website com ASP.NET e SQL Server – Parte 5 Hoje iremos iniciar o desenvolvimento do painel de controle do nosso website. A intensão é possibilitar ao usuário uma livre administração do website com criação das páginas e seus respectivos conteúdos. O que estamos fazendo nada mais é que um CMS (Content Management Systems) ou Sistema de gerenciamento de conteúdo. Alguns exemplos de CMS: WordPress BlogEngine.NET Joomla Drupal Tudo bem que o nosso humilde website não se compara aos citados, mais o conceito é o mesmo, gerenciar conteúdos Mais nada impede que possa criar algo semelhante e criar funcionalidades adicionais, pois esse é o caminho. Então vam ao que interessa. Antes de iniciarmos, faça o download do projeto anterior: Desenvolvimento de Website com ASP.NET e SQL Server Pa 2 . Abra o projeto e para iniciar, vamos criar uma pasta chamada painel. Essa será a pasta que conterá todas as páginas que irá gerenciar nosso website. Dentro dela iremos criar a página de login. Então clique com o botão direito sobre a pasta painel e clique em Add New Item. Em seguida defina o nome para a página. O nome será login.aspx. Essa página será a responsável por autenticar o usuário. Blog e Fórum sobre C# (CSharp), ASP.NET, ASP.NET MVC, AJAX, WinForm, WebForm, Entity Framework, Microsoft .NET Framework, SQL C# Brasil 2.664 pessoas curtiram C# Brasil. Plugin social do Facebook Curtir

Transcript of Desenvolvimento de Website com ASP 3.pdf

Page 1: Desenvolvimento de Website com ASP 3.pdf

Página Inicial Autores Livros Registre­se Forum Download Newsletter Empregos Contato

Doação

Se o C# Brasil tem sido útil paravocê, ajude­o fazendo uma doação.

Social Media

Pesquisar

Pesquisar por:

Pesquisar

Enquetes

Você acha que o C# Brasildeveria fazer mais sorteios?

Sim Não

Vote

Ver Resultados

Arquivo de enquetes

Encontre­nos no Facebook

C# Brasil no Google+

Desenvolvimento de Website com ASP.NET e SQL Server – Parte 3Publicado 5 de fevereiro de 2012 | Por Raphael Cardoso | 64 comentários

Olá caro leitor!

Dando continuidade aos artigos anterior sobre desenvolvimento de website com ASP.NET e SQL Server. Se você ainda nãoacompanhou essa série de artigos sobre o desenvolvimento de website com ASP.NET e SQL Server acesse:

Desenvolvimento de Website com ASP.NET e SQL Server – Parte 1Desenvolvimento de Website com ASP.NET e SQL Server – Parte 2Desenvolvimento de Website com ASP.NET e SQL Server – Parte 3Desenvolvimento de Website com ASP.NET e SQL Server – Parte 4Desenvolvimento de Website com ASP.NET e SQL Server – Parte 5

Hoje iremos iniciar o desenvolvimento do painel de controle do nosso website.

A intensão é possibilitar ao usuário uma livre administração do website com criação das páginas e seus respectivosconteúdos. O que estamos fazendo nada mais é que um CMS (Content Management Systems) ou Sistema degerenciamento de conteúdo.

Alguns exemplos de CMS:

WordPressBlogEngine.NETJoomlaDrupal

Tudo bem que o nosso humilde website não se compara aos citados, mais o conceito é o mesmo, gerenciar conteúdos.Mais nada impede que possa criar algo semelhante e criar funcionalidades adicionais, pois esse é o caminho. Então vamosao que interessa.

Antes de iniciarmos, faça o download do projeto anterior: Desenvolvimento de Website com ASP.NET e SQL Server ­ Parte2.

Abra o projeto e para iniciar, vamos criar uma pasta chamada painel.

Essa será a pasta que conterá todas as páginas que irá gerenciar nosso website.

Dentro dela iremos criar a página de login. Então clique com o botão direito sobre a pasta painel e clique em Add NewItem.

Em seguida defina o nome para a página. O nome será login.aspx. Essa página será a responsável por autenticar ousuário.

Blog e Fórum sobre C# (C­Sharp), ASP.NET, ASP.NET MVC, AJAX, WinForm, WebForm, EntityFramework, Microsoft .NET Framework, SQL

C# Brasil

2.664 pessoas curtiram C# Brasil.

Plug­in social do Facebook

Curtir

Page 2: Desenvolvimento de Website com ASP 3.pdf

C# Brasil

Seguir +1

C# Brasil no Twitter

Aprender a programar em C# – Parte 3: Você viu nos artigos anteriores a abordagem sobre a linguagem C# (C­Shar... bit.ly/1ChSlCy

C# Brasil @csharpbrasil

[Emprego] Desenvolvedor Pleno C# (C­Sharp) – Empresa de Pagamento: Tipo de Vaga: Desenvolvedor Pleno Local da ... bit.ly/1yS3Nnh

C# Brasil @csharpbrasil

[Emprego] Desenvolvedor Sênior C#:

C# Brasil @csharpbrasil

2 Mar

22 Jan

8 Jan

Tweets Follow

Tweet to @csharpbrasil

Parceiros

Publicidade

Lomadee, uma novaespécie na web. A

maior plataforma deafiliados da América

Latina.

Agora criaremos uma nova pasta para incluirmos o CSS da página de login. Definiremos o nome dá pasta como css.Criei também dentro da pasta css um novo arquivo de folha de estilo clicando com o botão direito sobre a pasta css e emseguida Add New Item para criar o arquivo login.css.

Inclua o CSS abaixo.

01 html, body, form02 03 height: 100%;04 05 body06 07 font‐family: Tahoma, Verdana, Arial, Sans‐Serif, Times New Roman;08 padding: 0;09 margin: 0;10 11 #geral12 13 position: relative;14 min‐height: 100%;15 background‐color: #f09942;16 17 * html #geral18 19 height: 100%;20 21 fieldset22 23 position:absolute;24 left: 50%;25 top: 50%;26 width: 300px;27 height: 220px;28 padding: 25px;29 margin: ‐135px 0 0 ‐175px;30 background‐color: #fff;31 border: 1px solid #fff;32 ‐moz‐box‐shadow: 0 0 15px #2c2d30;33 ‐webkit‐box‐shadow: 0 0 15px #2c2d30;34 ‐msie‐border‐radius: 8px;35 ‐moz‐border‐radius: 8px;36 ‐webkit‐border‐radius: 8px;37 38 fieldset h239 40 margin: 0;41 padding: 0;42 43 fieldset #content_login44 45 margin: 20px 0;46 47 fieldset label

48 49 display: block;50 padding: 10px 0 0 0;51 52 fieldset input[type=text], fieldset input[type=password]53 54 width: 100%;55

Page 3: Desenvolvimento de Website com ASP 3.pdf

Abra a pagina login.aspx para incluirmos o HTML abaixo.

Já estamos com nossa página de login definida e agora vamos implementa­la, mais antes precisaremos fazer algumasalterações no banco de dados, na camada de entidade e na camada de negocio.

Para o banco criaremos uma nova tabela chamada USUARIOS. Essa tabela será para armazenar os usuários do painel decontrole. Abra o SQL Server Manager e execute o script abaixo.

E agora incluiremos nosso usuário padrão.

Teremos então os seguintes dados para acesso ao painel de controle.

Usuario: adminSenha: admin (Convertido para MD5)

Já temos nossa tabela de usuários, porem precisaremos cria­la na nossa classe de entidades. Abra­o para incluir umanova classe. Clique com o botão direito sobre o projeto WebSite.Entities e crie um novo item.

Defina o nome como Usuarios.cs.

56 fieldset input[type=button], fieldset input[type=submit]57 58 background‐color: #f09942;59 padding: 10px;60 border: 1px solid #f09942;61 ‐msie‐border‐radius: 8px;62 ‐moz‐border‐radius: 8px;63 ‐webkit‐border‐radius: 8px;64 font‐weight: bold;65

01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs"Inherits="painel_login" %>

02 03 <!DOCTYPE html PUBLIC "‐//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1‐transitional.dtd">04 05 <html xmlns="http://www.w3.org/1999/xhtml">06 <head runat="server">07 <title></title>08 <style type="text/css">09 @import url('css/login.css');10 </style>11 </head>12 <body>13 <form id="form1" runat="server">14 <div id="geral">15 <fieldset>16 <h2>Painel de controle</h2>17 <div id="content_login">18 <label>Usuário</label>19 <asp:TextBox ID="txtUsuario" runat="server" />20 <label>Senha</label>21 <asp:TextBox ID="txtSenha" runat="server" TextMode="Password" />22 <br /><br />23 <asp:Button ID="btnAutenticar" Text="Autenticar" runat="server" /> 24 </div>25 </fieldset>26 </div>27 </form>28 </body>29 </html>

01 CREATE TABLE USUARIOS02 (03 ID_USUARIO INT IDENTITY(1, 1) NOT NULL,04 NOME_USUARIO VARCHAR(40) NOT NULL,05 EMAIL_USUARIO VARCHAR(100) NOT NULL,06 LOGIN_USUARIO VARCHAR(20) NOT NULL,07 SENHA_USUARIO VARCHAR(32) NOT NULL,08 ATIVO_USUARIO INT,09 PRIMARY KEY(ID_USUARIO)10 )

1 INSERT INTO USUARIOS(NOME_USUARIO, EMAIL_USUARIO, LOGIN_USUARIO, SENHA_USUARIO,ATIVO_USUARIO)

2 VALUES('Administrador', 'admin@admin', 'admin', '21232f297a57a5a743894a0e4a801fc3', 1)

Page 4: Desenvolvimento de Website com ASP 3.pdf

Vamos definir as propriedades da Classe.

Já temos definido como será nossa entidade. Agora podemos partir para a atualização da camada de negocio.Abra o projeto WebSite.Business e crie uma nova classe chamado de Usuario.cs.

Implemente­a conforme o código abaixo.

01 using System;02 03 namespace WebSite.Entities04 05 public class Usuarios06 07 public int Id get; set; 08 public string Nome get; set; 09 public string Email get; set; 10 public string Login get; set;

11 public string Senha get; set; 12 public bool Ativo get; set; 13 14 public Usuarios()15 16 17 18 19 public Usuarios(int Id)20 21 this.Id = Id;22 23 24 public Usuarios(string Login)25 26 this.Login = Login;27 28 29 public Usuarios(string Login, string Senha)30 31 this.Login = Login;32 this.Senha = Senha;33 34 35 public Usuarios(int Id, string Nome, string Email, string Login, string Senha,

bool Ativo)36 37 this.Id = Id;38 this.Nome = Nome;39 this.Email = Email;40 this.Login = Login;41 this.Senha = Senha;42 this.Ativo = Ativo;43 44 45

001 using System;002 using System.Collections.Generic;003 using System.Text;004 using System.Configuration;005 using System.Data;006 using System.Linq;

Page 5: Desenvolvimento de Website com ASP 3.pdf

007 008 namespace WebSite.Business009 010 public class Usuarios011 012 private string ConnectionString =

ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;013 public bool Erro get; set; 014 public string MensagemErro get; set; 015 016 public Usuarios()017 018 this.Erro = false;019 this.MensagemErro = string.Empty;020 021 022 public Entities.Usuarios AutenticaUsuario(string Login, string Senha)023 024 Entities.Usuarios[] usuarios = ListaUsuarios(new Entities.Usuarios(Login,

Senha));025 Entities.Usuarios usuario = usuarios.FirstOrDefault();026 027 if (usuario == null)028 029 this.Erro = true;030 this.MensagemErro = "Usuário ou senha inválido";031 032 033 return usuario;034 035 036 public bool LoginCadastrado(string Login)037 038 Entities.Usuarios[] usuarios = ListaUsuarios(new Entities.Usuarios(Login));039 Entities.Usuarios usuario = usuarios.FirstOrDefault();040 041 bool existe = usuario != null && usuario.Id > 0;042 043 return existe;044 045

046 public Entities.Usuarios[] ListaUsuarios()047 048 return ListaUsuarios(null);049 050 051 public Entities.Usuarios[] ListaUsuarios(Entities.Usuarios usuario)052 053 List<Entities.Usuarios> lstUsuarios = new List<Entities.Usuarios>();054 055 Data.Connection connection = new Data.Connection(this.ConnectionString);056 connection.AbrirConexao();057 058 StringBuilder sqlString = new StringBuilder();059 sqlString.AppendLine("select * from usuarios");060 061 if (usuario != null)062 063 sqlString.AppendLine("where 1 = 1");064 065 if (usuario.Id > 0)066 067 sqlString.AppendLine("and id_usuario = " + usuario.Id + "");068 069 070 if (!string.IsNullOrEmpty(usuario.Login) && usuario.Login.Length > 0)071 072 sqlString.AppendLine("and login_usuario like '" +

usuario.Login.Replace("'", "''") + "'");073 074 075 if (!string.IsNullOrEmpty(usuario.Senha) && usuario.Senha.Length > 0)076 077 sqlString.AppendLine("and senha_usuario = '" + usuario.Senha + "'");078 079 080 081 IDataReader reader = connection.RetornaDados(sqlString.ToString());082 083 int idxId = reader.GetOrdinal("ID_USUARIO");084 int idxNome = reader.GetOrdinal("NOME_USUARIO");085 int idxEmail = reader.GetOrdinal("EMAIL_USUARIO");086 int idxLogin = reader.GetOrdinal("LOGIN_USUARIO");087 int idxSenha = reader.GetOrdinal("SENHA_USUARIO");088 int idxAtivo = reader.GetOrdinal("ATIVO_USUARIO");089 090 while (reader.Read())091 092 Entities.Usuarios _Usuario = new Entities.Usuarios();093 _Usuario.Id = reader.GetInt32(idxId);094 _Usuario.Nome = reader.GetString(idxNome);095 _Usuario.Email = reader.GetString(idxEmail);096 _Usuario.Login = reader.GetString(idxLogin);097 _Usuario.Senha = reader.GetString(idxSenha);098 _Usuario.Ativo = reader.GetInt32(idxAtivo) == 1;099 100 lstUsuarios.Add(_Usuario);

Page 6: Desenvolvimento de Website com ASP 3.pdf

Pronto! Temos nossa nova tabela criada, camada de entidades e camada de negócios atualizada.

Como pode ver, a nossa classe Usuarios da camada de negocio em partes possui as mesmas funcionalidades que aclasse Paginas. O seu único diferencia é os métodos para verificar se o login do usuário já esta cadastrado e o métodopara autenticar o usuário.

101 102 103 connection.FechaConexao();104 105 return lstUsuarios.ToArray();106 107 108 public bool SalvaUsuario(Entities.Usuarios usuario)109 110 bool salvou = false;111 112 if (usuario != null)113 114 Data.Connection connection = new Data.Connection(this.ConnectionString);115 connection.AbrirConexao();116 117 StringBuilder sqlString = new StringBuilder();118 119 if (usuario.Id > 0)120 121 sqlString.AppendLine("update usuarios set");122 sqlString.AppendLine("nome_usuario = '" + usuario.Nome.Replace("'",

"''") + "',");123 sqlString.AppendLine("email_usuario = '" + usuario.Email.Replace("'",

"''") + "',");124 sqlString.AppendLine("login_usuario = '" + usuario.Login.Replace("'",

"''") + "',");125 sqlString.AppendLine("ativo_usuario = " + (usuario.Ativo ? 1 : 0) + "

");126 sqlString.AppendLine("where id_usuario = " + usuario.Id + "");127 128 else129 130 if (!LoginCadastrado(usuario.Login))131 132 sqlString.AppendLine("insert into usuarios(nome_usuario,

email_usuario, login_usuario, senha_usuario, ativo_usuario)");133 sqlString.AppendLine("values('" + usuario.Nome.Replace("'", "''")

+ "', '" + usuario.Email.Replace("'", "''") + "', '" + usuario.Login.Replace("'", "''") +"', '" + usuario.Senha.Replace("'", "''") + "', " + (usuario.Ativo ? 1 : 0) + ")");

134 135 else136 137 this.Erro = true;138 this.MensagemErro = "Login já está sendo utilizado.";139 140 141 142 int i = connection.ExecutaComando(sqlString.ToString());143 salvou = i > 0;144 145 connection.FechaConexao();146 147 148 return salvou;149 150 151 public bool SalvaUsuario(int Id, string Nome, string Email, string Login, string

Senha, bool Ativo)152 153 return SalvaUsuario(new Entities.Usuarios(Id, Nome, Email, Login, Senha,

Ativo));154 155 156 public bool ExcluiUsuario(Entities.Usuarios usuario)157 158 bool salvou = false;159 160 if (usuario != null && usuario.Id > 0)161 162 Data.Connection connection = new Data.Connection(this.ConnectionString);163 connection.AbrirConexao();164 165 StringBuilder sqlString = new StringBuilder();166 sqlString.AppendLine("delete from usuarios");167 sqlString.AppendLine("where id_usuario = " + usuario.Id + "");168 169 int i = connection.ExecutaComando(sqlString.ToString());170 171 connection.FechaConexao();172 173 174 return salvou;175 176 177 public bool ExcluiUsuario(int Id)178 179 return ExcluiUsuario(new Entities.Usuarios(Id));180 181 182

Page 7: Desenvolvimento de Website com ASP 3.pdf

Outro detalhe é as propriedades criadas para retorno de mensagem de erro caso ocorra. No caso de utilizarmos o métodoLoginCadastrado para verificar se um determinado login está em uso e esse esteja poderemos retornar uma mensagempor meio da propriedade MensagemErro.

Vamos implementar agora a página login.aspx. Para isso abra a página de login para adicionarmos evento ao botão deautenticação. De duplo clique sobre ele e vamos adicionar o código do evento btnAutenticar_Click.

No evento do botão iremos recuperar os dados digitados pelo usuário nos TextBox. No caso da senha, iremos converte­lopara MD5 e instanciar nossa camada de negocio para autenticar o usuário e redireciona­lo para a página principal e casoele não tenha fornecido sua credencial corretamente será notificado.

Veja como ficou minha tela de login do painel de controle.

No próximo artigo iremos criar as páginas internas, controle de sessão e segurança do nosso painel de controle. Vejaalguns dos tópicos que abordaremos no próximo artigo.

Controle de sessãoCriação das telas de gerenciamento de usuário

Faça download do projeto: Desenvolvimento de Website com ASP.NET e SQL Server ­ Parte 3.

Não deixe de participar do fórum. Siga o C# Brasil no Twitter e Facebook.

Até o próximo artigo e bons estudos!

Uma pessoa curtiu isso. Seja o primeiro entre seus amigos.Curtir

Posts relacionados:

1. Desenvolvimento de Website com ASP.NET e SQL Server – Parte 12. Desenvolvimento de Website com ASP.NET e SQL Server – Parte 43. Desenvolvimento de Website com ASP.NET e SQL Server – Parte 54. Desenvolvimento de Website com ASP.NET e SQL Server – Parte 25. Criando um Web Service seguro com SoapHeader

Postado em ASP.NET, C#, SQL Server, Visual Studio | Marcado como .NET, acesso a dados, ASP.NET, C#, CMS, ContentManagement Systems, CSS, Desenvolver website, Desenvolvimento de Website, N­Camadas, N­Tier, Sistema degerenciamento de conteúdo, Sql Server, System.Data.OleDb, System.Data.SqlClient, Visual Studio

64 respostas para “Desenvolvimento de Website com ASP.NET e SQL Server – Parte 3”

Paulo Henrique Menezes disse:5 de fevereiro de 2012 às 11:32

Excelente artigo Rafael. Podemos aprender muita coisa com eles.Valeu!

Evandro Oliveira disse:6 de fevereiro de 2012 às 7:46

Artigos Excelentes, todos os tópicos abordados são muito bons, valeu mesmo Rafael, só uma coisa, começei fazer osexemplos, usando um website em branco, quais referencias devo usar no web.config para que o projeto funcioneperfeitamente.obs: baixei seu código e no web.config tem muitas informações, todas são necessárias? se não quais referencias sãoessenciais para o funcionamento do projeto.dede já Obrigado, e parabéns pelos artigos.

Raphael Cardoso disse:

01 protected void btnAutenticar_Click(object sender, EventArgs e)02 03 string Login = txtUsuario.Text;04 string Senha = txtSenha.Text;05 06 Senha = FormsAuthentication.HashPasswordForStoringInConfigFile(Senha, "MD5");07 08 WebSite.Business.Usuarios usuariosBO = new WebSite.Business.Usuarios();09 WebSite.Entities.Usuarios usuario = usuariosBO.AutenticaUsuario(Login, Senha);10 11 if (!usuariosBO.Erro && usuario.Id > 0)12 13 Response.Redirect("default.aspx");14 15 else16 17 ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "msgbox", "alert('" +

usuariosBO.MensagemErro + "')", true);18 19

Page 8: Desenvolvimento de Website com ASP 3.pdf

6 de fevereiro de 2012 às 7:58

Quando iniciei o projeto essas foram as configurações determinadas pelo Visual Studio para uso do Framework 3.5,basicamente essas são as configurações exigidas.

Denis Carvalho disse:9 de fevereiro de 2012 às 0:36

Raphael.

Duas coisas que não foi mencionado, fica a dica pra galera que estiver desenvolvendo.

No cs da login pra usar a classe FormsAuthentication deverá ser definido a namespace using “System.Web.Security;”no meu VS não veio setado como padrão, tive que escrever o código na mão.

Pra conseguir obter o CSS da Login, você tem que sair da pasta painel, o código da @import ficaria assim “@importurl(‘../css/login.css’);” invés de “@import url(‘css/login.css’);”

Excelente artigo

Abraços!!!

rochasdv disse:15 de fevereiro de 2012 às 0:35

Caramba cara, que post sinistro!Por Favor não páre!

Eu ainda não iniciei o projeto, estive passando o olho no tutorial para ver se era o que estava precisando e mesurpreendi!

Mt bom mesmo, parabéns!

Raphael Cardoso disse:15 de fevereiro de 2012 às 5:26

Obrigado! Pode ficar tranquilo, ainda tem mais. No começo da semana era pra ter saído a quarta parte mais atrasouum pouco. Logo publicarei! Aguarde!

sergio disse:15 de fevereiro de 2012 às 12:30

Muito bom o Post!!! Vai ser dividiso em quantas partes ?

Raphael Cardoso disse:15 de fevereiro de 2012 às 14:51

A princípio serão 5 partes.

sergio disse:15 de fevereiro de 2012 às 15:06

Muito bom o post fico no aguardo dos demais.

Raphael Cardoso disse:15 de fevereiro de 2012 às 17:11

A quarta postagem ia ficar grande então dividi ela em 2. Estou providenciando para essa semana. Acabou atrasandoum pouco.

João Paulo disse:16 de fevereiro de 2012 às 16:55

Rafael, estou com um problema grave..Estou tentando utilizar o seu Artigo, mais usando a Framework 4.0 e o banco de dados mysql, cara dou debug emminha aplicação ele passa pelo metodo de AbrirConexao passa numa boa quando vai fazer o MySqlDataReader ele dizq a conexão está fechada…

Teria como me ajudar???Aguardo seu retorno, valeu!!!

Raphael Cardoso disse:16 de fevereiro de 2012 às 18:14

Duas situações.1­ Você informou o connection para o command?2­ você verificou se a conexão e aberta antes da leitura do reader?

Veja isso e me fale. Caso não de certo você poderia me mandar o código de conexão?

Abraço!

Page 9: Desenvolvimento de Website com ASP 3.pdf

João Paulo disse:16 de fevereiro de 2012 às 18:59

As 2 situações estão certas..teria como me passar um email para enviar o código de conexão pra vc??

Abraço

Raphael Cardoso disse:16 de fevereiro de 2012 às 19:01

Estou mandando um e­mail para você no joaopaulo_fb@… assim você responde mandando o codigo.

Abraço

Leando Teixeira disse:24 de fevereiro de 2012 às 11:14

como sempre, muito bom o post estou realmente entusiasmado com o que tenho aprendido. Valeu

Raphael Cardoso disse:24 de fevereiro de 2012 às 18:43

Fico feliz por vocês estarem alcançado resultados satisfatórios. Parabéns para vocês também!

Bartolomeu disse:5 de março de 2012 às 17:48

Boa tarde,

Como corrigir o erro do ListaUsuario, pois informa que não existe a referencia.

Bartolomeu disse:5 de março de 2012 às 17:49

O erro: é The call is ambigous between the following methods or propeits…….

Obrigado.

Jordan disse:25 de março de 2012 às 18:34

Muito bom o artigo meu caro ! É útil mesmo para quem já tem algum conhecimento porque mostra na prática essesconceitos de arquitetura e o uso de componentes asp.net.

Edgar disse:4 de abril de 2012 às 21:15

Meus Parabéns Brother pelo artigo, estou aprendendo muito com o desenvolvimento em camadas.

Se não for pedir muito, poderia um dia publicar o mesmo assunto só que em ASP.NET MVC ? Seria legal tb aprendercom sua forma didática de ensinar e ilustrar as coisas.

Abraços e Bons Estudos Galera

Alex Souza disse:8 de maio de 2012 às 20:07

Raphael,Parabéns pelos artigos estão nota 10!

na pagina editar_usuario.aspx esta dando erro nessa linha:

bool Salvou = usuariosBO.SalvaUsuario(usuario);– No overload for method ‘SalvaUsuario’ takes 1 arguments

a IDE sugere gerar na camada de negocios:

public bool SalvaUsuario(WebSite.Entities.Usuarios usuario)throw new NotImplementedException();

mas na hora de editar ou salvar ele para nessa exception.

Aguardo, obrigado!

Raphael Cardoso disse:

Page 10: Desenvolvimento de Website com ASP 3.pdf

8 de maio de 2012 às 23:40

Olá Alex, vejá na 4ª parte do artigo. Acredito que isso ocorra porque você não deve ter declarado a camada denegócio.

Veja no link: http://csharpbrasil.com.br/csharp/desenvolvimento­de­website­com­asp­net­e­sql­server­parte­4/

Abraço

Alex Souza disse:9 de maio de 2012 às 10:52

Raphael,

Erro meu mesmo! na camada de negócios na parte do método SalvaUsuario que verifica se o usuario foi salvo tinhahavia digitar “SalvarUsuario” então estava gerando este erro.

Obrigado pela atenção!

Raphael Cardoso disse:9 de maio de 2012 às 11:02

Olá Alex! Fico feliz de ter dado certo!Precisando, estamos aqui para ajudar.

Abraço e sucesso!

DouglasAlmeida.TI disse:8 de junho de 2012 às 18:02

Raphael Cardoso… seus posts são excelentes… e de fácil entendimento.. Parabéns…Não consigo entender.. mas Estou com um probleminha na classe Usuário da BO… Acredito que seja alguma coisareferente a sobrecarga do método, pois não existe métodos com somente esses parametros (login e Senha)…Erro Apresentado:“The best overloaded method match for ‘WebSite.Entities.Usuarios.Usuarios(int)’ has some invalid arguments”Código:public Entities.Usuarios AutenticaUsuario(string Login, string Senha)Entities.Usuarios[] usuarios = ListaUsuarios(new Entities.Usuarios(Login, Senha));

Entities.Usuarios usuario = usuarios.FirstOrDefault();

if (usuario == null)this.Erro = true;this.MensagemErro = “Usuário ou Senha Inválido”;

return usuario;

Fico No Aguardo!!! Obrigado

DouglasAlmeida.TI disse:8 de junho de 2012 às 18:04

Corrigindo.. o Erro Apresentado é:

‘WebSite.Entities.Usuarios’ does not contain a constructor that takes 2 arguments.

Raphael Cardoso disse:8 de junho de 2012 às 19:02

Já verificou se ela esta como public? Ela realmente existe? Verifique se você compilou. No último caso, feche o projetoe o visual studio e abra novamente.

DouglasAlmeida.TI disse:8 de junho de 2012 às 20:15

Estavam todas as classes publicas… porém não tinha criado as sobrecargas para esse metodo.. e tbm precisei excluir eincluir as referencias novamente… Obrigado Raphael..

mmartins disse:25 de junho de 2012 às 17:17

Lembrando que ali na parte do Autenticador de MD5 falta declarar a biblioteca using System.Web.Security;

Wollny disse:31 de janeiro de 2013 às 14:27

Parabéns pelo tutorial e pela iniciativa em ajudar os que estão iniciando!!

Comecei a estudar estes posts recentemente e tenho uma dúvida: o código para o botão de autenticação ficará em

Page 11: Desenvolvimento de Website com ASP 3.pdf

Painel/Login.aspx.cs?

Se sim, no meu caso, ocorre erro em txtUsuário.Text e txtSenha.Text (não existem no contexto atual…).

otavio disse:31 de janeiro de 2013 às 15:31

Boa tarde.

Ao executar a aplicação, a minha tela de Login está sendo exibida somente a metade na parte superior da tela.

Alguém pode me orientar sobre o que posso ter feito de errado e me ajudar a corrigir?

Raphael Cardoso disse:2 de fevereiro de 2013 às 17:09

Otávio, para saber somente vendo o que você fez no código.Coloque o seu código no PasteBin.com e me passa o link para ver como fez.

Raphael Cardoso disse:2 de fevereiro de 2013 às 17:10

Wollny, sobre o erro apresentado, é porque você não criou os TextBox no lado HTML.

otavio disse:2 de fevereiro de 2013 às 17:24

Raphael,

como eu havia alterado demais o fonte para tentar resolver eu recomecei o projeto. O erro que tenho agora é comrelação ao System.Linq.

Como faço para adiciona­lo? Já procurei mas não encontrei esta referencia. (Na web diz para incluir o System.Core,mas já o fiz e o erro persiste…).

Obrigado pela atenção e pelo excelente post.

otavio disse:2 de fevereiro de 2013 às 17:25

Raphael,

apenas complementando eu utilizo VS2010 e Framework 4.0.

Raphael Cardoso disse:2 de fevereiro de 2013 às 18:29

Otávio, o System.Linq faz parte do System.CoreQual o erro apresentado?

otavio disse:2 de fevereiro de 2013 às 19:05

Raphael, o erro é este:

“Erro 3 Nome do espaço para nome ou tipo ‘Linq’ não existe no espaço para nome ‘System’. Precisa de uma referênciade módulo (assembly)?”

Raphael Cardoso disse:4 de fevereiro de 2013 às 19:29

Otávio, você conseguiu adicionar a referência System.Core?Eu fiz um teste aqui e removi o meu de um projeto. Ao tentar incluir, ele dá erro.A alternativa para solucionar o problema é abrir o arquivo de extensão csproj do seu projeto e incluir a referenciamanualmente.Em ItemGroup, adicione a seguinte informação.

Segue alguns links de referência:

Lee Brandt’s Blog – Do NOT remove the reference to System.Core from your VS2010 ProjectMicrosoft Connect – Cannot remove System.Core.dll reference from a VS2010 project

Acredito que essa será a solução para o seu problema.Faça um teste e nos de um Feedback.

Abraço

otavio disse:4 de fevereiro de 2013 às 20:28

Olá Raphael,

Page 12: Desenvolvimento de Website com ASP 3.pdf

na realidade eu refiz toda a aplicação e ai o erro parou de ocorrer.

Para continuar a estudar eu iniciei um novo projeto e estou utilizando a estrutura do seu exemplo para realizar aconexão, consultas, etc.

Após informar o usuário e senha é exibida a mensagem: System.NotImplementedException: O método ou a operaçãonão está implementada.”

Você pode me orientar em como implementar este método, fazendo favor?

Grato pela atenção.

Raphael Cardoso disse:4 de fevereiro de 2013 às 21:23

Olá Otávio, o erro ocorrido é porque o método invocado não está implementado. Você deverá implementar o códigoconforme o exemplo do link abaixo.

http://csharpbrasil.com.br/csharp/desenvolvimento­de­website­com­asp­net­e­sql­server­parte­3/#highlighter_674262

otavio disse:6 de fevereiro de 2013 às 15:11

Olá Raphael, obrigado pelo retorno. Ficou Ok.

Uma dúvida: como faço para posicionar o cursor no primeiro campo? (p.ex: no campo Usuário da tela de login).

otavio disse:7 de fevereiro de 2013 às 13:52

Fiz a publicação de um site de testes (localhost) e, ao executar, é exibida a seguinte mensagem no browser:

“Parser Error Message: Could not load the assembly ‘App_Web_kbqt34w3′. Make sure that it is compiled beforeaccessing the page.”

Source error:Line 1:Line 2:Line 3:

Source File: /WebSite/Login/default.aspx Line: 1

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

Alguém pode me orientar, fazendo favor?

Raphael Cardoso disse:7 de fevereiro de 2013 às 16:11

Olá Otávio, clique com o botão direito sobre o Solution da sua aplicação, clique em “Clean Solution“. Após isso,“Rebuild Solution” para recompilar e tente publica­la novamente.

otavio disse:8 de fevereiro de 2013 às 10:44

Raphael, fiz da forma que você orientou mas o erro permanece:

Server Error in ‘/’ Application.

Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review thefollowing specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load the assembly ‘App_Web_y4mkuywx’. Make sure that it is compiled beforeaccessing the page.

Source Error:

Line 1:Line 2:Line 3:

Source File: /WebSite/MasterPage.master Line: 1

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

Raphael Cardoso disse:8 de fevereiro de 2013 às 20:09

Olá Otávio. Não estou entendo o porque sua aplicação está dando esse erro. A solução que lhe dei era para terresolvido.Como está a configuração da sua aplicação? Está rodando no IIS? Já verificou permissão do diretório da aplicação?Tem como você me mandar sua aplicação para que eu possa ver o que tem de errado? Se sim, mande para raphaelarroba csharp brasil ponto com ponto br com o assunto “[C# Brasil] Artigo 3113″. Aguardo envio do mesmo e­mail queutilizou no comentário.

Page 13: Desenvolvimento de Website com ASP 3.pdf

Abraço

Thata disse:7 de março de 2013 às 16:05

Olá Raphael sou iniciante em ASP e estou com um problema….Quando gero esse código no Visual Studio apresenta o seguinte erro…O melhor método esta sobrecarregado para‘WebSite.Business.Usuarios.ListaUsuarios (Entities.Usuarios)’ tem alguns argumentos inválidos C: \ Users \thalita.barros \ Conexao com Banco \ WebSite.Business Usuarios.cs, porem estava lendo alguns artigos mais nãoconsigo encontrar nada que possa me ajudar em relação a esse erro.Lembrando que ocorre na parte deListaUsuarios(null); Será que poderia me ajudar???

Raphael Cardoso disse:7 de março de 2013 às 21:40

Thalita, é possível nos passar seu código da classe Usuarios e o código que está utiliza e que ocasionou o erro?Fico no aguardo!

Thata disse:8 de março de 2013 às 12:18

Ok…Raphael consegui resolver o Problema na verdade era um simples problema com a classe Usuário doWebSite.Entities mais consegui achar esse erro… Fico Grata….A proposito estou adorando as aulas….. aprendendo bastante… Valew….!!!

André Rodrigues Côrte disse:30 de junho de 2013 às 2:28

Estou criando minha app e esta apresentando erro ao subir no navegador como localhost.

Directory Listing — /

Sunday, June 30, 2013 01:53 AM binSunday, June 30, 2013 01:50 AM imagem_transparente$Sunday, June 30, 2013 01:54 AM 967 MasterPage.MasterSunday, June 30, 2013 01:11 AM 340 MasterPage.Master.csSunday, June 30, 2013 01:13 AM 779 MasterPage.Master.designer.csSunday, June 30, 2013 01:09 AM objSunday, June 30, 2013 01:51 AM 11,115 PRJWebSite.csprojSunday, June 30, 2013 01:51 AM 1,086 PRJWebSite.csproj.userSunday, June 30, 2013 01:09 AM PropertiesSunday, June 30, 2013 01:20 AM StylesSunday, June 30, 2013 01:09 AM 2,002 Web.configSunday, June 30, 2013 01:09 AM 1,285 Web.Debug.configSunday, June 30, 2013 01:09 AM 1,346 Web.Release.config

Version Information: ASP.NET Development Server 10.0.0.0

Alguem pode me ajkudar por favor??? Nao sei mais o que fazer…

Obrigado.

Raphael Cardoso disse:30 de junho de 2013 às 19:38

Olá André! Qual o erro apresentado?

Andre Rodrigues Corte disse:30 de junho de 2013 às 20:59

Raphael, boa noite!

Apresenta este erro abaixo.

—————————­ERRO—————————­Directory Listing — /

Sunday, June 30, 2013 01:53 AM binSunday, June 30, 2013 01:50 AM imagem_transparente$Sunday, June 30, 2013 01:54 AM 967 MasterPage.MasterSunday, June 30, 2013 01:11 AM 340 MasterPage.Master.csSunday, June 30, 2013 01:13 AM 779 MasterPage.Master.designer.csSunday, June 30, 2013 01:09 AM objSunday, June 30, 2013 01:51 AM 11,115 PRJWebSite.csprojSunday, June 30, 2013 01:51 AM 1,086 PRJWebSite.csproj.userSunday, June 30, 2013 01:09 AM PropertiesSunday, June 30, 2013 01:20 AM StylesSunday, June 30, 2013 01:09 AM 2,002 Web.configSunday, June 30, 2013 01:09 AM 1,285 Web.Debug.configSunday, June 30, 2013 01:09 AM 1,346 Web.Release.config

—————————­ERRO—————————­

Obrigado pela força…

Page 14: Desenvolvimento de Website com ASP 3.pdf

Raphael Cardoso disse:30 de junho de 2013 às 21:33

André, esse erro não está claro para mim. Você não esqueceu de nenhum detalhe? Não é apresentado o Exception?

André Rodrigues Côrte disse:1 de julho de 2013 às 9:47

Então Raphael é apenas este erro. O que acontece é o seguinte criei um projeto como ASP.NET Aplication apaguemtodas as pastas que é criada por default e criei um novo layout e na aplicação não esta apresentando nenhum esteerro só ocorre na obra que carrega no Browser. Pesquisei em outros Blogs e estão falando que tem que setar a paginapois não esta puxando a pagina na hora que carrega, então fui no caminho informado e setei a mesma mas o errocontinua.

Raphael Cardoso disse:1 de julho de 2013 às 12:04

Olá André. Está faltando o arquivo Default.aspx, só pode ser isso.

Andre Rodrigues Corte disse:2 de julho de 2013 às 13:34

Raphael estou estudando melhor e ver o que consigo, mas valeu pelo help, ja deu uma luz.

Por enquanto valew.

Abraço…

Fernando disse:17 de agosto de 2013 às 18:21

Oi Raphael, tudo bem?Gostei muito e estou seguindo essa série para a criação de um website.Estou com o mesmo erro que o Wollny relatou mais acima. Está apresentando na página login que txtUsuário.Text etxtSenha.Text não existem no contexto atual.Já confirmei que coloquei as informações HTML na página login.aspx, mas a página login.aspx.cs continua dizendo queo txtUsuario.Text e txtSenha.Text não estão no contexto atual.Peguei alguns exemplos na Net em outros locais e aparentemente a referência para um objeto html estão similares aoque está presente no artigo e a que eu fiz.Tem alguma idéia? Obrigado.

Jeferson disse:7 de outubro de 2013 às 13:35

Rafael,

Estou tentando rodar as paginas mas o css não esta funcionando, fica aparecendo @import na pagina web. O queestou fazendo de errado ja tentei usar link href tb não deu certo

Cássia disse:11 de outubro de 2013 às 12:03

Olá Raphael!Estou com problema no ConfigurationManager.Dá o seguinte erro: “The name ‘ConfigurationManager’ does not exixt in the current context.

Raphael Cardoso disse:11 de outubro de 2013 às 13:15

Inclui a referência System.Configuration

Desenvolvimento de Website com ASP.NET e SQL Server ­ Parte 4 ­ C# Brasil disse:23 de fevereiro de 2014 às 22:17

[…] Desenvolvimento de Website com ASP.NET e SQL Server – Parte 3 […]

Desenvolvimento de Website com ASP.NET e SQL Server ­ Parte 5 ­ C# Brasil disse:23 de fevereiro de 2014 às 22:21

[…] Desenvolvimento de Website com ASP.NET e SQL Server – Parte 3 […]

Marcelo disse:1 de setembro de 2014 às 17:48

Cara.. parabens pelo tutorial, muito bom mesmo.. me quebrou um galhão…

Estou com um problema q “contornei” mais ou menos.. pq sóda local, no meu host funcionou normal…

Page 15: Desenvolvimento de Website com ASP 3.pdf

Últimos comentários

Adenor de Oliveira em Dados relacionados com Entity Framework 4Henrique em Crud com Entity Framework fácil parte 2Raphael Cardoso em Criando um Web Service seguro com SoapHeaderJoja goulart em Criando um Web Service seguro com SoapHeaderAlexandre Coelho em Criando User Controls em ASP.NETRaphael Cardoso em Desenvolvimento de Website com ASP.NET e SQLServer – Parte 1Natalia em Desenvolvimento de Website com ASP.NET e SQL Server – Parte1Raphael Cardoso em Desenvolvimento de Website com ASP.NET e SQLServer – Parte 1Natalia em Desenvolvimento de Website com ASP.NET e SQL Server – Parte1Raphael Cardoso em Desenvolvimento de Website com ASP.NET e SQLServer – Parte 1

Tags

Últimas postagens

Aprender a programar em C# – Parte 3[Emprego] Desenvolvedor Pleno C# (C­Sharp) – Empresa de Pagamento[Emprego] Desenvolvedor Sênior C#Sorteio do livro HTML5 em Ação – Editora NovatecSorteio do livro Desenvolvendo com AngularJS – Editora NovatecTestes de Invasão – Editora NovatecFoundation for Sites – Editora NovatecSorteio do livro Criando Aplicações Web com WordPress – Editora NovatecSorteio do livro Programação de Jogos Android – Editora Novatec[Emprego] Desenvolvedor .NET

ele apresenta o seguinte problema:

Nome inválido objeto ‘usuarios’.

Descrição: Ocorreu UMA Exceção SEM TRATAMENTO Durante um Execuções da Atual solicitação da Web. Examine oRastreamento de pilha Para obter Mais INFORMAÇÕES SOBRE o Erro e Onde FOI originado no Código. Detalhes daExceção: System.Data.SqlClient.SqlException: Invalid object name ‘usuarios’. Erro de Origem:

tem alguma alteração que preciso fazer no banco?

Muito obrigado.

Abraços

Raphael Cardoso disse:2 de setembro de 2014 às 10:26

Olá Marcelo, tudo bem?.

O erro está indicando que o objeto indicado na sua query não existe ou é inválido. Tudo leva a crer que não exista atabela com nome usuarios. Veja se o nome da tabela esta correta ou se o seu banco é CASE SENSITIVE pois nessecaso irá diferenciar USUARIOS de usuarios ou de Usuarios. Tudo leva a crer que esse seja o problema.

Para acertar isso, verifique como está o nome da tabela no banco e altere na aplicação da mesma forma que esta nobanco. Já tive esse problema no meu caso com o MySql que localmente funcionava e remotamente não.

Qualquer coisa, deixa aqui depois seu comentário.Abraço

Marcelo disse:2 de setembro de 2014 às 14:13

Fala Raphael.. blz cara?

Não sei por causa, motivo, razão ou circunstância a tabela não tinha sido criada no sql local, por isso o erro.. isso quedá trabalhar com várias conexões abertas.. devo ter colado o script no arquivo de backup apertado f5 e nem notado qnão gravou..mas desde ja agradeço sua atenção.

abraços

Deixe uma resposta

Nome (obrigatório)

Email (não será publicado) (obrigatório)

Site

Notifique­me dos comentários por e­mail

Não sou um robôreCAPTCHA

Privacidade - Termos

Enviar comentário

Page 16: Desenvolvimento de Website com ASP 3.pdf

.NET acesso a dados ADO.NET AJAX Alfredo Lotar ASP.NET ASP.NET MVCC# CMS Comlink componente Content Management Systems csharp C Sharp CSSDesenvolver website Desenvolvimento de Website Dicas Emprego Entity FrameworkFramework HTML jquery LINQ Microsoft MSDN MVC N­Camadas N­Tier NovatecEditora Pessoa Juridica Ribeirão Preto Sistema de gerenciamento de conteúdo Sql ServerSystem.Data.OleDb System.Data.SqlClient system.io VB.NET Visual StudioVisualStudio Webcast WebForm WebService windows forms WinForm

C# Brasil ­ (CC) Alguns direitos reservados. O conteúdo deste site está sob a licença de Creative Commons Atribuição­Uso Não­Comercial­Compartilhamento pelamesma Licença 2.5 Brasil. Permissões e/ou restrições além do escopo desta licença podem ser vistas e/ou requeridas. Nenhum conteúdo deste site pode ser copiado

e reproduzido em outro site sem autorização do autor!© 2006­2015. Todos os direitos reservados.

Desenvolvido por desenweb.com