22 messaggi dal 11 settembre 2011
Premetto che con codice asp la login mi funziona perfettamente. I parametri della connessione sono gli stessi che utilizzo con asp.net
Con asp.net ho però problemi nel senso che non mi vede proprio la connessione. Per farmi capire: se cambio nel codice di connessione la password e il nome del database, mettendone uno diverso da quello censito sul server, dovrebbe darmi errore. Invece no. Mi restituisce l pagina della login.aspx senza procedere.

Ecco il codice. Dove sto sbagliando?

<%@ Page Language="VB" Debug="true"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim connectionString As String = "Server=localhost; Database=xxxxxx; User ID=yyyyy; password= zzzzzz"
Dim conn As New SqlConnection(connectionString)
Dim cmd As New SqlCommand("SELECT * FROM connect_clienti WHERE username ='" & txtUsername.Text & "' AND password ='" & txtPassword.Text & "'")
Dim reader As SqlDataReader = cmd.ExecuteReader()
Try
conn.Open()
reader = cmd.ExecuteReader
If reader.Read() Then
' Controllo necessario per il case sensitive
If txtUsername.Text = reader("username") And txtPassword.Text = reader("password") Then
' Aggiungo l'utente alla sessione ed effettuo il redirect alla Home
Session.Add("username", txtUsername.Text)
Response.Redirect("https://www.gdlstudio.it/index.aspx")
Else
' Username o Password errate
End If
Else
' Username o Password errate
End If
Catch ex As Exception
' Errore
Finally
' Se la connessione è rimasta aperta, la chiudo
If Not conn Is Nothing Then
conn.Close()
End If
End Try
End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.style1
{
width: 20%;
}
.style2
{
width: 119px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>

<table align="center" class="style1">
<tr>
<td class="style2">
&nbsp;</td>
<td>
&nbsp;</td>
</tr>
<tr>
<td align="right" class="style2">
Username</td>
<td>
<asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" class="style2">
Password</td>
<td>
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style2">
&nbsp;</td>
<td>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Invio" />
</td>
</tr>
</table>

</div>
</form>
</body>
</html>
Non ti restituisce l'errore perchè fai uso di try/catch. Prova a stampare a video o su log l'eccezione aggiungendo un Literal nella pagina e scrivendo nel catch MyLiteral.Text = ex.Message

PS - Attenzione alla query di login, spero sia solo un esempio altrimenti ti consiglio di leggere qualche buon articolo su SQL Injection
Modificato da manuel0081 il 13 marzo 2012 08.04 -

Ormai programmano tutti... ma la professionalità appartiene a pochi
22 messaggi dal 11 settembre 2011
Sì certo, è solo un esempio che sto creando per poter accedere a una tabella di dati di prova.
Finora ho programmato con asp e trovo un pò di difficoltà a passare ad asp.net.

Provo a fare come mi hai detto.
Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.