Olá,
Visitante
. Por favor
Entre
ou
Registe-se
se ainda não for membro.
Maio 20, 2013, 23:24
1 Hora
1 Dia
1 Semana
1 Mês
Para sempre
Entrar com nome de utilizador, password e duração da sessão
Início
Ajuda
Regras
Pesquisa
Entrar
Registe-se
Wiki
Links
Fórum SCP - A Comunidade do Sporting Clube de Portugal
Outros Assuntos
Tecnologia, Informática e Jogos
(Moderador:
Angel Lion
)
Tópico:
Ajuda ASP.NET
0 Membros e 1 Visitante estão a ver este tópico.
Páginas: [
1
]
Autor
Tópico: Ajuda ASP.NET (Lida 395 vezes)
Ajuda ASP.NET
, «
em:
Maio 13, 2010, 23:19 »
x_byte
Juvenil
Mensagens: 940
Idade: 25
Localidade: Aveiro
Boas,
Eu estou a acabar (a meio vá
) um projecto para a faculdade no âmbito da disciplina de BD (Base de Dados) e não percebo nada de ASP.NET, ou melhor tenho umas noções básicas.
Estou a fazer um site de "compra/venda" de software, onde utilizadores podem comprar, pedir caso não exista no sistema e adicionar software feito por eles.
O meu problema está na área de Login do site.
Eu utilizei umas daquelas "caixas" de login que estão disponíveis no Visual Studio e obtenho a entrada que corresponde ao username e password na tabela utilizadores (é onde está guardada a informação de todos os utilizadores registados no site) presente na BD.
Para tal, utilizo o seguinte código:
Código:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
bool flag = false;
string IDuser = null;
string connString = WebConfigurationManager.ConnectionStrings["ProjectoBD_IHC"].ConnectionString;
SqlConnection con = new SqlConnection(connString);
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM Utilizador WHERE Username = @username AND Password = @pass";
cmd.Parameters.AddWithValue("@username", Login1.UserName.Trim());
cmd.Parameters.AddWithValue("@pass", Login1.Password.Trim());
try
{
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
flag = true;
IDuser = reader["IDUtilizador"].ToString();
}
}
catch (SqlException exc)
{
}
if (flag == true)
{
e.Authenticated = true;
Response.Redirect("Default.aspx?id ="+ IDuser);
}
else
{
e.Authenticated = false;
}
con.Close();
}
Como podem ver, eu envio o id do utilizador que inciou a sessão como parâmetro para a página principal do site. Em cada página do site existe um link para a área do utilizador (caso tenha feito o login) ou para a página de login. Se o utilizador estiver com a sessão inciada torna-se visível um link para fazer logout. Para ter estas funcionalidades a funcionar, neste momento tenho de de enviar o ID novamente como parâmetro e fazer outra ligação à BD
O que eu pretendo é algo como existe aqui no fórum, em que eu em qualquer parte tenha acesso a essas funcionalidades (área, logout, etc.)
Como é que eu a partir deste código, posso criar uma área de login como a que existe aqui no fórum ?
Eu percebo muito pouco de ASP e aguardo ajuda de alguma alma caridosa que me consiga iluminar a carola.
Se tiverem alguma crítica a fazer ao código postado acima, força nisso
AHHHH, a programação é feita em C#.
Penso ter descrito todas as informações necessárias, caso tenham mais alguma dúvida é só perguntar
Peço desculpa pelo post ser tão comprido, mas eu sou uma pessoa que necessita de muitas palavras para descrever o que pretendo (sou complicado
).
Registado
Re: Ajuda ASP.NET
, «
Resposta #1 em:
Maio 14, 2010, 07:31 »
alemid
Veterano
Mensagens: 7875
Localidade: S. M. Feira
E que tal estudares, pensares, fazer um bocado de trabalho de casa?
Registado
Re: Ajuda ASP.NET
, «
Resposta #2 em:
Maio 14, 2010, 09:43 »
wild_oscar
Mensagens: 3227
A pergunta que fazes está relacionada com a interface e não com o código que usas para fazeres o login (embora daquilo que me lembro de .NET eles nunca foram brilhantes a separar bem as águas).
Tens de criar um template para a tua página, onde reserves uma parte para a secção de login. Mais que isso já não te consigo dizer, que há uns 4 anos que abandonei o .Net...
Registado
Re: Ajuda ASP.NET
, «
Resposta #3 em:
Maio 14, 2010, 10:22 »
ARMAS
Veterano
Condecorações:
Mensagens: 10254
Idade: 36
Localidade: Amadora/Alfena
Em vez de enviares o id do login por QueryString (que é o que na prática fazes quando o adicionas na URL do redirect), guarda-o na sessão através da instrução:
Session["Login"] = id;
Depois, tal como o wild oscar adiantou, em cada página terás que ter uma área para exibir a info sobre o login. Nesse controlo, colocas o gajo a ir buscar o id guardado em sessão:
string id = Session["Login"].ToString();
Depois na acção de Logout terás que limpar o valor guardado na sessão:
Session["Login"] = null;
Registado
#&%@-$€!!!
Re: Ajuda ASP.NET
, «
Resposta #4 em:
Maio 14, 2010, 10:34 »
tmsilva
Iniciado
Mensagens: 446
Idade: 34
Localidade: Odivelas
Boas.
Sendo o ambito bases de dados, a ideia não deve ser perderes muito tempo a codificar asp.net.
Assim sendo, as funcionalidades de autenticação, autorização, criação de users e perfis, vêm built-in no asp.net a partir da versão 2.0. Podes usar o controlo de Login para autenticares o teu user e usares um provider de autenticação já disponivel. Podes usar o controlo de Login View, para mostrar quem está autenticado no momento, etc. Em relação ao provider de autenticação sugiro que uses o SQLMembershipProvider.
Existem vários links na net sobre isto, mas faz uma pesquisa por "sqlmembershipprovider scott guthrie" que vais montes de informação.
Deixo-te aqui um link rápido, com um video de 9 minutos que te ensina a fazer tudo o que tu queres.
Boa sorte.
Registado
Re: Ajuda ASP.NET
, «
Resposta #5 em:
Maio 14, 2010, 14:58 »
tmsilva
Iniciado
Mensagens: 446
Idade: 34
Localidade: Odivelas
Citação de: tmsilva em Maio 14, 2010, 10:34
Boas.
Deixo-te aqui um link rápido, com um video de 9 minutos que te ensina a fazer tudo o que tu queres.
Boa sorte.
Bem secalhar devia deixar o Link
http://www.asp.net/general/videos/how-do-i-set-up-the-sql-membership-provider
Registado
Re: Ajuda ASP.NET
, «
Resposta #6 em:
Maio 14, 2010, 19:37 »
x_byte
Juvenil
Mensagens: 940
Idade: 25
Localidade: Aveiro
Obrigadão a todos.
Optei por utilizar uma variável de sessão (visto ser vista em todas as páginas do meu site) e faz exactamente o que eu pretendo. Fica aqui o meu obrigado ao ARMAS.
Tenho uma área de login numa Masterpage e vou ver qual o estado da varivel de sessão.
Agradeço mais uma vez a colaboração dos vários foristas
Registado
Gosta deste tópico? Partilhe-o:
Páginas: [
1
]
Fórum SCP - A Comunidade do Sporting Clube de Portugal
Outros Assuntos
Tecnologia, Informática e Jogos
(Moderador:
Angel Lion
)
Tópico:
Ajuda ASP.NET
« tópico anterior
seguinte »
Ir para:
Por favor seleccione um destino:
Universo Sporting Clube de Portugal
Redacção Porta 10-A
Orgulho Leonino
Direcção, SAD e Orgãos Sociais
Sócios, Adeptos e Património
Futebol e Modalidades do Sporting
Futebol Profissional
Jogos e Jogadores
Transferências e Prospecção
Formação do Sporting
Modalidades do Sporting
Assuntos Desportivos
Futebol de Outras Equipas e Selecções
International Lounge
Jogadores
Selecções Nacionais
Modalidades de Outras Equipas, Selecções e Atletas
Assuntos Desportivos Gerais e de Outros Clubes
Outros Assuntos
Conversas de Café
Bookmark
Tecnologia, Informática e Jogos
Área da Comunidade
Wiki Sporting
Arquivo
Predictions League
Eleições Sporting 2013
Eleições Sporting 2011
Eleições Sporting 2009
Euro 2012
Mundial FIFA 2010
Euro 2008
Mundial FIFA 2006
Revistas e Newsletters
A carregar...