1

我正在 asp.net 中做一个项目。它使用我用 2 个文本框和一个按钮实现的登录功能。没有什么花哨。

所以现在我必须区分登录的是哪种用户,因为有不同的角色,如管理员、用户、访客......

所以我需要知道的是 Session["UserAuthentication"] 是什么以及它的作用...我认为我可以将此数据添加到一个额外的表中以记录所有会话...这是一个好方法吗?

这是我的身份验证方法:

protected void Button1_Click(object sender, EventArgs e)
        {
            string username = tbUsername.Text;
            string pwd = tbPassword.Text;
            string s;
            s = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection con = new SqlConnection(s);
            con.Open();
            string sqlUserName;
            sqlUserName = "SELECT Username, UserPassword FROM Benutzer WHERE Username ='" + username + "' AND UserPassword ='" + pwd + "'";
            SqlCommand cmd = new SqlCommand(sqlUserName, con);
            string CurrentName;
            CurrentName = (string)cmd.ExecuteScalar();
            if (CurrentName != null)
            {
                Session["UserAuthentication"] = username;
                Session.Timeout = 1;
                Response.Redirect("Default.aspx");
            }
            else
            {
                lblStatus.ForeColor = System.Drawing.Color.Red;
                lblStatus.Text = "Benuztername/Password ungültig!";                               
            }
        }
4

1 回答 1

2

Session["UserAuthentication"]是一个变量,它将在username该特定当前用户的所有页面中全局保存 的值。

是的,您可以将数据添加到SQL Table. 为此,您需要将其添加到您的web.config文件中。

<sessionState mode="SQLServer" sqlConnectionString="data source=yourDataSource;user id=username;password=password" cookieless="false" timeout="20" />

以防万一您想知道变量的 存储在Database哪里SessionId- 为此您需要ASPState Database在服务器上安装 。web.config并如上所述在文件上相应地传递连接字符串。

如何添加数据库 ASPState?
1. 转到这个路径:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 2.
在这里你会找到一个你需要在你的.scriptInstallSqlState.sqlSQL server

于 2013-03-12T11:18:27.753 回答