non funziona

lunedì 30 agosto 2010 - 17.24
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2008

deacon Profilo | Newbie

Ciao a tutti.
Ho creato una masterPage dove ho inserito una form per l'autenticazione degli utenti.
Naturalmente, una volta inserite credenziali corrette, la form dovrebbe reindirizzare l'utente ad una pagina di partenza e tramite il <asp:LoginView> fa passare l'utente alla modalità di visualizzazione personalizzata <LoggedInTemplate>.

L'autenticazione funziona ma, purtoppo, il reindirizzamento non va.

Il mio CodeBehind è il seguente:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
bool Authenticated = false;
Login _login1 = (Login)LoginView1.FindControl("Login1");
Authenticated = AuthenticationMethod(_login1.UserName, _login1.Password);
e.Authenticated = Authenticated;
if (!IsPostBack)
{
if (Authenticated == true)
{
Response.Redirect("http://xxxxxxxxxxxxx.aspx");
}
}
}

private bool AuthenticationMethod(string UserName, string Password)
{
bool boolReturnValue = false;
string strConnection = "Data Source=xxxx;Initial Catalog=xxxx;User ID=xxxx;PASSWORD=xxxx;";
SqlConnection Connection = new SqlConnection(strConnection);
String strSQL = "Select email, password From table";
SqlCommand command = new SqlCommand(strSQL, Connection);
SqlDataReader Dr;
Connection.Open();
Dr = command.ExecuteReader();
while (Dr.Read())
{
if ((UserName == Dr["email"].ToString()) & (Password == Dr["password"].ToString()))
{
boolReturnValue = true;
}
Dr.Close();
return boolReturnValue;
}
return false;
}
}
}

Qualcuno può aiutarmi?
Grazie in anticipo.

Gluck74 Profilo | Guru

l'autenticazione avviene dopo il postBack lanciato dalla formView.
Nel tuo codice il redirect sta dentro un if (!isPostBack). togli il not e vedrai che funziona

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

deacon Profilo | Newbie

Grazie, avevo già provato a togliere il not e in effetti funziona il reindirizzamento, però la visualizzazione rimane a <AnonymousTemplate>, quindi non visualizza le informazioni dedicate all'utente appena loggato.

deacon Profilo | Newbie

sono riuscito a risolvere il problema inserendo la stringa System.Web.Security.FormsAuthentication.RedirectFromLoginPage(_login1.UserName, true); prima del Redirect.

Grazie lo stesso per l'aiuto!

Matteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5