如何根据登录的用户显示收件箱邮件

本文关键字:显示 收件箱 用户 何根 登录 | 更新日期: 2023-09-27 18:17:53

我正在做一个用ASP.NET开发的网站。其中一个页面需要显示存储在数据库中的消息。目前,我可以使用<asp:Gridview>检索这些消息并在页面上显示它们,而不会出现问题。我的问题是每条消息都显示给所有用户。例如,

用户1可以看到"bla bla"

用户2可以看到"bla bla"

我想以某种方式管理显示基于哪个用户登录的每个消息。例如,

用户1只能看到ABC

用户2只能看到DEF

下面的代码用于收件箱页面。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
            <Columns>
                <asp:BoundField DataField="Message2" HeaderText="Message" HeaderStyle-Width="150" />
                <asp:BoundField DataField="SentDate" HeaderText="Sent Date" HeaderStyle-Width="150" />
             </Columns>
</asp:GridView>

我在Page_Load函数处从Data检索消息。

protected void Page_Load(object sender, EventArgs e)
{
    if (User.Identity.IsAuthenticated == true)
    {
        using (SqlConnection conn = new SqlConnection(Common.ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand("SELECT Message2,SentDate FROM Messages"))
            {
                using (SqlDataAdapter sda = new SqlDataAdapter())
                {
                    cmd.Connection = conn;
                    sda.SelectCommand = cmd;
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                }
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                reader.Close();
                conn.Close();
            }
        }
    }
    this.GridView1.Attributes.Add("bordercolor", "#e9e9e9");
}

我真的被困在这个问题上,所以任何帮助都会非常感激。提前感谢

如何根据登录的用户显示收件箱邮件

在Message Table中添加用户信息

 create table Messages (User varchar(30),Message2 Varchar(100),
        SentDate Varchar(100));

为了检索每个用户的信息,修改SQL查询,包括where子句。

  using (SqlCommand cmd = new SqlCommand("SELECT Message2,SentDate FROM 
        Messages where User="+user.toString()));