AYUDA! login con asp.net y sql server 2005

moyulloag

Bovino adolescente
#1
hola! quisiera pedir su ayuda tengo el suiguiente codigo, con el cual pido nombre y contraseña lo cual consulto en una base de datos sql server 2005 y si esta el usuario lo dirige al index.aspx si no esta, marca error, entonces es lo que no me sale, como saber si la consulta fue exitosa o no y como seria el log out,
AYUDA PARA ENTRAR Y SALIR DEL SISTEMA
CODIGO:
<%@ Page language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
void Alta(Object sender, EventArgs args){
SqlConnection conexion = new SqlConnection("server=(local);database=d…
String sentencia="select * from dbo.usuario where usuario = @usuario AND password = @password";
SqlCommand comando=new SqlCommand (sentencia,conexion);
int resultado;
try{
conexion.Open();
comando.Parameters.Add(new SqlParameter("@usuario",SqlDbType.NVarCh… 10));
comando.Parameters["@usuario"].Value = usuario.Text;

comando.Parameters.Add(new SqlParameter("@password",SqlDbType.NVarC… 20));
comando.Parameters["@password"].Value = password.Text;


resultado=comando.ExecuteNonQuery();
if (resultado == 1)

Response.Redirect("/data/priv/index2.asp…

Response.Write("Se iniciado " + resultado + " sesion " + " <a href=MostEmp.aspx>Ver Usuarios</a>");
Response.Write("<br><br>");



conexion.Close();

}

catch(SqlException e){

Response.Write("se ha producido una excepción: "+e);
}
}
</script>
<html>
<head><title>Inisiar Sesion</title></head>
<body>
<div id="cabecera">
<img src="img/data.jpg">
</div>
<br>
<h1><center> Iniciar Sesion </center></h1>
<form runat="server" id="formulario">
<asp:Label Runat="server" ID="TextoUsuario" text="usuario"/>
<asp:TextBox Runat="server" ID="usuario"/><br/>

<asp:Label Runat="server" ID="Textpassword" text="password"/>
<asp:TextBox Runat="server" ID="password"/><br/>

<br/>
<asp:Button OnClick="Alta" Runat="server" ID="boton" Text="Entrar"/>
</form>
</body>
</html>
 

juansinu

Bovino maduro
#4
compa yo ya estube en esas mismas hace tiempo: este es el codigo asp qe tengo y si funciona.
solo fijate qe la connection string se la correcta para tu sql server... ya que mi codigo asp lo tengo enlazado para mysql. hazle las modificaciones adecuadas. cualqier cosa me avisas.


<%
dim conn
dim conn_string
nom = Request.form("user")
passw = Request.form("pass")
conn_string = "Driver={MySQL ODBC 3.51 Driver};Server=127.0.0.1;Port=3306;Database=bdejemplo1;Pwd=soyunangel;Uid=root"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open(conn_string)
strQuery = "select * from horario where usuario='"&nom&"' and contra='"&passw&"'"
Set RS = conn.Execute(strQuery)

bandera=0
if rs.eof=true then
bandera=1
end if
if bandera=0 then
response.write("Usuario correcto")
response.Redirect "bandeja.asp"
else
response.write("No te conozco")
end if

%>
 

ChrisOnasis

Bovino maduro
#7
compa yo ya estube en esas mismas hace tiempo: este es el codigo asp qe tengo y si funciona.
solo fijate qe la connection string se la correcta para tu sql server... ya que mi codigo asp lo tengo enlazado para mysql. hazle las modificaciones adecuadas. cualqier cosa me avisas.


<%
dim conn
dim conn_string
nom = Request.form("user")
passw = Request.form("pass")
conn_string = "Driver={MySQL ODBC 3.51 Driver};Server=127.0.0.1;Port=3306;Database=bdejemplo1;Pwd=soyunangel;Uid=root"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open(conn_string)
strQuery = "select * from horario where usuario='"&nom&"' and contra='"&passw&"'"
Set RS = conn.Execute(strQuery)

bandera=0
if rs.eof=true then
bandera=1
end if
if bandera=0 then
response.write("Usuario correcto")
response.Redirect "bandeja.asp"
else
response.write("No te conozco")
end if

%>

Esto es ASP no ASP.NET, ´si sólo van a copiar y pegar ejemplos de internet sin saber, mejor no lo hagan, sólo pierden al chavo.
 

ChrisOnasis

Bovino maduro
#8
Hola, en primera, la ejecución que haces (ExecuteNonQuery) generalmente se usa para instrucciones de UPDATE, INSERT, DELETE y no para SELECT.

Ahora para validar es: ExecuteReader, este te devolverá un SqlDataReader el cual puedes ejecutar con:

SqlDataReader reader = cmd.ExecuteReader();
string username = string.Empty;
string password = string.Empty;
if(reader.Read())
{
int usernameIndex = reader.GetOrdinal("NombreColumnaUsername");
if(!reader.IsDbNull(usernameIndex))
username = reader.GetString(usernameIndex);

int passwordIndex = reader.GetOrdinal("NombreColumnaPassword");
if(!reader.IsDbNull(passwordIndex))
password = reader.GetString(passwordIndex);
}
if(password == txtPassword.Text.Trim() && username == txtUsername.Text.Trim())
Response.Write("Usuario correcto");
else
throw new Exception("Usuario inválido");
 
Arriba