Я думаю, вы хотите сохранить все значения в сеансе, и вот как вы это делаете:
SqlCommand cmd1 = new SqlCommand("select plugin_id from profiles_plugins where id=(select id from profiles_plugins where profile_id=" + Convert.ToInt32(Session["cod"]) + ")", con);
SqlDataReader dr1 = cmd1.ExecuteReader();
var yourList = new List<int>();
if (dr1.HasRows)
{
while (dr1.Read())
{
yourList.Add(Convert.ToInt32(dr1[0]));
}
}
Session["edp1"] = yourList;
dr1.Close();
cmd1.Dispose();
А когда вы читаете из сеанса, вы просто набираете:
var yourList = (List<int>)Session["edp1"];
Но вы должны действительно реорганизовать свой код, код не должен управлять доступом к данным и обработкой сеансов в одном месте.