Ciao a tutti,
sto iniziando a vedere come lavora la variabile Session in asp per cercare di fare qualcosina...
Ho pensato ad una cosa molto elementare, cioè mettere user e pass in due campi di una web form, metterli nella variabile session e poi farli stampare in un altra pagina richiamata da un bottone, senza controlli di validità, senza niente... solo per vedere come funziona il passaggio delle sessioni.
L'eccezione che salta è che l'oggetto della seconda pagina è nullo... quindi non trasmette nulla... vi posto il codice
Codice pagina Login.aspx:
codice:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
User:<asp:TextBox ID="txt_user" runat="server" Style="position: relative"></asp:TextBox>
Pass:<asp:TextBox ID="txt_pass" runat="server" Style="position: relative"></asp:TextBox>
<asp:Button ID="btn_login" runat="server" OnClick="btn_login_Click" Style="position: relative"
Text="Login" PostBackUrl="~/Info.aspx"/></div>
</form>
</body>
</html>
... quel PostBackUrl è giusto??? :master:
Codice della pagina in c#
codice:
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_login_Click(object sender, EventArgs e)
{
Utente utente = new Utente(txt_user.Text, txt_pass.Text);
Session["Utente"] = utente;
}
}
public class Utente
{
public String User;
public String Pass;
public Utente(String user, String pass)
{
this.User = user;
this.Pass = pass;
}
}
...la mia classe utente, che quella che poi vado a memorizzare nella sessione va bene messa lì? :master:
Codice della pagina Info (che prende i dati della Session e li stampa in due label):
codice:
public partial class Info : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Utente utente = (Utente)Session["Utente"];
Label1.Text = utente.User;
Label2.Text = utente.Pass;
}
}
Grazie a tutti per le dritte... io cerco di vedere qualche esempio in giro, se voi siete più veloci di me ve ne sono grato!!!
Cià!