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 に答える