Id sesi Asp.net meneruskan lebih dari 1 atribut

pemrograman


Saya memiliki halaman login asp yang terhubung ke database sql. pengguna masuk berdasarkan informasi yang cocok dengan tabel sql. Saya juga memiliki sesi yang berfungsi. Saya adalah saya pada hari-hari awal proyek saya. jadi setelah saya memasukkan pengguna, mereka diarahkan ke halaman Dasbor dan saya dapat menampilkan id pengguna mereka yang ditugaskan ke sesi tersebut. Langkah selanjutnya adalah saya ingin menampilkan atribut lain dari tabel database seperti nama dan umur dll.

jadi ini kode yang saya miliki di halaman login:

ASP.NET
protected void Button1_Click(object sender, EventArgs e)
{
    try
    {
        string uid = TextBox1.Text;
        string pass = TextBox2.Text;

        myCon.Open();
        string qry = "select userId from users where userId='" + uid + "' and Password='" + pass + "'";
        SqlCommand cmd = new SqlCommand(qry, myCon);
        SqlDataReader sdr = cmd.ExecuteReader();
        if (sdr.Read())
        {
            Session["userId"] = uid.Trim();
            Response.Redirect("Dashboard.aspx");
        }
        else
        {
            Label4.Text = "UserId & Password Is not correct Try again..!!";
        }
        myCon.Close();
    }
    catch(Exception ex){
        Response.Write(ex.Message);
    }
}

Di halaman dasbor saya memiliki yang berikut:

ASP.NET
protected void Page_Load(object sender, EventArgs e)
{
    if (Session["userId"] == null)
        Response.Redirect("Login.aspx");
    SessionLabel.Text = "Username : " + Session["userId"];
}

protected void ButtonLogout_Click(object sender, EventArgs e)
{
    Session.Abandon();
    Response.Redirect("Login.aspx");
}

Bisakah saya meneruskan beberapa atribut ke ID sessoin? saya tidak ingin membuka koneksi sql lain di halaman dasbor. Adakah yang bisa membantu saya dengan kodenya? Saya ingin menampilkan email pengguna dan nama lengkap di papan dasbor.

terima kasih

G

Apa yang saya coba:

saya telah mencoba menyampaikan lebih dari satu argumen pada sesi tetapi tidak berhasil.

Solusi 2

Ya, Anda dapat menggunakan Newtonsoft.JsonSerializer. Json.NET – Newtonsoft[^]

Ikat data Anda ke satu instance objek (yaitu LoginDataModel), dan buat serialisasi representasi string json

LoginDataModel dataSession = new LoginDataModel();
dataSession.Username = "blacky";
dataSession.Division = "Internal";
string output = JsonConvert.SerializeObject(dataSession);

Session["userId"] = output ; 

Saat Anda ingin menggunakan nilai sesi, pertama-tama dapatkan stringnya. dan Deserialize ke objek Model (yaitu LoginDataModel)

コメント

タイトルとURLをコピーしました