0

ユーザーがログインしてフォーラムにocmmentsを投稿できるフォーラムを作成しています。ユーザー名をセッション変数として使用して、コメントを投稿してデータベースにユーザー名を挿入し、helloユーザーメッセージを表示するときに取得できるようにします.

以下は私のログインコードです:

protected void Button1_Click(object sender, EventArgs e)
{
    DataSet ds = new DataSet();
    localhost.Service1 myws = new localhost.Service1();
    ds = myws.GetUsers();
    foreach (DataRow row in ds.Tables[0].Rows)
        if (txtusername.Text == System.Convert.ToString(row["username"]) &&
        txtpassword.Text == System.Convert.ToString(row["password"]))
        {
            System.Web.Security.FormsAuthentication.RedirectFromLoginPage(txtusername.Text, false);
        }
        else
            Label3.Text = "Invalid Username/Password";
}

ここでセッション変数を宣言しますか?

お気に入り:

Session["username"] = "username";

また、データベースからユーザー名の値を取得するために何を入力すればよいかわかりません

ありがとう

4

2 に答える 2

0

セッションを使用する必要はありません。メソッドを呼び出すとFormsAuthentication.RedirectFromLoginPage、ターゲット ページ内で、このメソッドによって発行された認証 Cookie から、User.Identity.Name.

protected void Page_Load(object sender, EventArgs e)
{
    if (User.Identity.IsAuthenticated)
    {
        string username = User.Identity.Name;
        // ...
    }
}

ASP.NET でのフォーム認証のしくみについて詳しくは、次の記事をお読みください。

于 2012-05-15T17:45:08.697 に答える
0

あなたはすでにフォーム認証 ( FormsAuthentication.RedirectFromLoginPage(txtusername.Text, false)) を使用していますが、これは素晴らしいことです。User.Identity.Nameしたがって、 Darin が指摘したように、ユーザー名は既に を介して使用できるため、ユーザー名をセッションに保存する必要はありません 。

役立つと思われるフォーム認証に関する 2 つのチュートリアルを作成しました。

さらに、メンバーシップの使用を検討してください。メンバーシップは、ASP.NET に組み込まれたサブシステムであり、ユーザー アカウントを処理し、アカウントの作成、アカウントの削除などのための API を提供します。要するに、すべてのコードを自分で記述する必要はありません。また、ログイン Web コントロールを使用すると、新しいアカウントの作成、ユーザーのサインイン、パスワードのリセットなどをすべて非常に簡単に行うことができ、必要なコードはほとんどありません。詳細については、メンバーシップのチュートリアルを参照してください。

ハッピープログラミング!

于 2012-05-15T17:51:14.007 に答える