任何人都可以教我如何使用会话吗?我有一个登录页面,它引用名为User的mysql db表,其中包括UserID ="variable number",用户名和密码.我希望能够将userid存储在会话中,以便我在登录时可以在用户配置文件中调用它.
这是怎么做到的?任何相关的编码和特定编码的放置都会有所帮助,因为我根本就没有把它拿起来.它是在(.cs文件)背后的代码中还是在aspx页面的html中保存?或两者以及如何?会话如何跨多个内部页面工作(一旦登录,您可以浏览多个与您自己的配置文件相关的页面)
using System.Data.Odbc;
partial class login : System.Web.UI.Page
{
protected void Login1_Authenticate(object sender, System.Web.UI.WebControls.AuthenticateEventArgs e)
{
OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=mydb; User=root;Password=;");
cn.Open();
OdbcCommand cmd = new OdbcCommand("Select * from login where username=? and password=?", cn);
//Add parameters to get the username and password
cmd.Parameters.Add("@username", OdbcType.VarChar);
cmd.Parameters["@username"].Value = this.Login1.UserName;
cmd.Parameters.Add("@password", OdbcType.VarChar);
cmd.Parameters["@password"].Value = this.Login1.Password;
OdbcDataReader dr = default(OdbcDataReader);
// Initialise a reader to read the rows from the login table.
// If row exists, the login is successful
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
e.Authenticated = true;
// Event Authenticate is true
}
}
}
Run Code Online (Sandbox Code Playgroud)
在C#中,将变量存储在Session变量中:
Session["usrID"]="myUserName";
Run Code Online (Sandbox Code Playgroud)
稍后,检索Session变量:
string usrName = Convert.ToString(Session["usrID"]);
Run Code Online (Sandbox Code Playgroud)