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. :shifty:
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:
[code] 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();
}[/code]
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 ;D
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 :inde:).