【发布时间】:2015-03-26 02:23:46
【问题描述】:
登录页面中的代码需要其他页面上的代码才能读取会话
protected void btnLogin_Click(object sender, EventArgs e)
{
lblMessage.Text = loginService.userLogin(txtusername.Text, txtPassword.Text);
string user = txtusername.Text;
if (lblMessage.Text == "Logged In")
{
Response.Redirect("AMD.aspx?Name='"+user);
Session["user"] = txtusername.Text;
}
else
{
Response.Redirect("loginPage.aspx");
}
}
其他页面中的代码以在第 2 页调用会话,以便我可以查看我的会话
ServiceReferenceUsers.ServicePubsClient serviceObj = new ServiceReferenceUsers.ServicePubsClient();
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = Request.QueryString["Name"].ToString();
Session["User"] = lblMessage.Text;
}
protected void btnLoad_Click(object sender, EventArgs e)
{
DataTable myData = new DataTable();
myData = serviceObj.viewUsers();
GridView1.DataSource = myData;
GridView1.DataBind();
}
【问题讨论】:
-
不清楚你在问什么,但在
btnLogin_Click中你将Session["User"]设置为用户名(看起来像那样),在Page_Load中你用lblMessage.Text;覆盖同一个会话如果您想将会话值设置为标签尝试为lblMessage.Text = Session["User"] -
您必须在重定向到另一个页面之前设置会话变量。您在两个地方也有不同大小写的 Session["user"],即在您的 btnLogin_click 事件处理程序中它是 Session["user"],而在 Page_Load 事件中它是 Session["User"]。是否打算有 2 个不同的会话用户变量?