C#根据cookie中的数据填充下拉列表

本文关键字:数据 填充 下拉列表 根据 cookie | 更新日期: 2023-09-27 17:58:53

我会看看我是否能足够清楚地解释这一点。我有两个网页表单。一个是基本的Forms Authentication登录页面,另一个表单显示来自多个服务器的任务。我正在创建一个存储UserID的cookie。这是我的cookie的代码:

        FormsAuthenticationTicket tkt = new FormsAuthenticationTicket(1, txtUser.Text, DateTime.Now, DateTime.Now.AddMinutes(120), true, rdr.GetInt32(0).ToString(), FormsAuthentication.FormsCookiePath);
        string hash = FormsAuthentication.Encrypt(tkt);
        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);

在我的另一个表单中,我有一个下拉框,它按服务器表中的服务器IP显示所有服务器。

public void Populate()
        {
            SqlConnection myConnection1 = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);
            myConnection1.Open();
            SqlCommand cmd1 = new SqlCommand("SELECT ServerIP FROM Servers", myConnection1);
            SqlDataReader dropReader;
            dropReader = cmd1.ExecuteReader();
            drpChoose.DataSource = dropReader;
            drpChoose.DataTextField = "ServerIP";
            drpChoose.DataValueField = "ServerIP";
            drpChoose.DataBind();
        }

我正在调用页面加载中的填充。我有另一个存储权限的表。它具有UserID、ServerID和Permission(读取或执行)。假设UserID 1只与IP为192.168.0.10的ServerID 1关联。如何在下拉列表中显示这一个服务器IP?我很确定,如果我将cookie传递到第二个表单中,我可以从中获取UserID,但我不知道从哪里开始。

如果我没有提供足够的信息,我深表歉意。如果需要,我会提供更多。

C#根据cookie中的数据填充下拉列表

看起来您需要对权限表执行类似的联接

SELECT ServerIP from Servers s, Permissions p where p.serverid = s.serverid and p.userid = :userIdFromCookie

然后,您需要将cookie中的用户id传递到Populate方法中,并使用DbParameter将值传递到Sql命令中。

类似于(顺便说一句,这是伪代码,因为我不在我的开发机器上)

cmd.AddInParameter(":userIdFromCookie",dbType.AnsiString, Request.Cookies["mycookie"]["userid"])