我有一个 asp.net c# web 应用程序,用户可以登录并查看他上周的日程安排,该日程安排存储在远程数据库中。登录该站点只需执行 SQL 检查,以查看用户名和密码是否与数据库中的 uname 和 pass 记录匹配。登录后,他们可以操作时间表的时间条目等。在调试时,我以两个不同的用户身份登录。用户 B 的表单上有用户 A 的所有内容。我编写程序就像编写常规的 c# 应用程序一样,并没有真正考虑过同时使用该网站的多人。我想我认为实例处理是自动的?我只使用asp.net 一个星期左右,并没有太多的支持。
我的主要问题是,如果我的网站上同时有多个用户,我如何保持他们的会话分开?
更新 - 添加会话变量后
这是我获取用户信息的sql语句。现在,使用会话变量:
string sqlquery = "SELECT FirstName, LastName, OperatorID FROM operators WHERE EmpID = '" + sql + "'";
using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["EobrConnectionString"].ConnectionString))
{
conn.Open();
using (MySqlCommand comm = new MySqlCommand(sqlquery, conn))
{
using (MySqlDataAdapter adapter = new MySqlDataAdapter(comm))
{
DataTable dt = new DataTable();
adapter.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
Session["Fname"] = dr[1].ToString();
Session["Lname"] = dr[2].ToString();
Session["opID"] = dr[3].ToString();
}
}
}
}
在主菜单页面中,我有这个:
protected void Page_Load(object sender, EventArgs e)
{
firstname = Session["Fname"].ToString();
lastname = Session["Lname"].ToString();
lblwelcome.Text = "Welcome, " + firstname + " " + lastname + ", make your selection below.";
}
当用户 A 登录时,他们会看到自己的名字“Frank Drebbin”。当用户 B 登录时,他们会看到自己的名字“Jake Gaston”。但是现在,如果我重新加载第一个用户页面,他们会看到名称为“Jake Gaston”。