指定用户仅查看已分配的数据(管理员面板)

时间:2015-02-05 14:59:29

标签: c# asp.net drop-down-menu

我有一个场景,我有不同类型的角色,如  SuperAdmin = 0

Admin = 1

用户= 2

我想要的是,

有一个下拉列表,其中包含多个组织名称,每个组织名称与管理员和用户相关。

现在,当任何用户或管理员登录到面板时,他应该只能在Readonly属性中查看与他相关的组织名称。

我创建了表格,现在我可以根据SuperAdmin的要求查看下拉列表中的所有组织。

我为User和第二个CompanyName创建了两个表,并创建了它们之间的关系。现在我想要的是

用户登录时的查询他应该只能在下拉列表中查看与他相关的组织名称

您好,

我有一个场景,我有不同类型的角色,如SuperAdmin,Admin和Users。

我想要的是,

有一个下拉列表,其中包含多个组织名称,每个组织名称与管理员和用户相关。

现在,当任何用户或管理员登录到面板时,他应该只能在Readonly属性中查看与他相关的组织名称。

我创建了表格,现在我可以根据SuperAdmin的要求查看下拉列表中的所有组织。

我为User和第二个CompanyName创建了两个表,并创建了它们之间的关系。现在我想要的是

用户登录时的查询他应该只能在下拉列表中查看与他相关的组织名称

我的下拉列表代码是

private void BindDropdownlist()
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultCSRConnection"].ConnectionString);
        SqlCommand cmd = new SqlCommand("Select * from tbl_ngoname", conn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);



        ddlngonameselect.DataValueField = ds.Tables[0].Columns["Id"].ToString();
        ddlngonameselect.DataTextField = ds.Tables[0].Columns["ngo_name"].ToString();
        ddlngonameselect.DataSource = ds.Tables[0];
        ddlngonameselect.DataBind();
        ddlngonameselect.Items.Insert(0, new ListItem("--Show All--", "0"));

    }

另请参阅每个用户的usertype。

cmd.Parameters.AddWithValue("@password", md5(txtPassword.Text));
        cmd.Parameters.AddWithValue("@active", 1);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        if (dt != null && dt.Rows.Count > 0)
        {
            if (dt.Rows[0]["usertype"].ToString() == "0") //SuperAdmin
            {
                Session["UserType"] = "0";
                Session["User"] = dt.Rows[0]["username"].ToString();
                Response.Redirect("csrdashboards.aspx");
            }
            else if (dt.Rows[0]["usertype"].ToString() == "1") // Admin
            {
                Session["UserType"] = "1";
                Session["User"] = dt.Rows[0]["username"].ToString();
                Response.Redirect("csrdashboards.aspx");
            }
            else if (dt.Rows[0]["usertype"].ToString() == "2") // User
            {
                Session["UserType"] = "2";
                Session["User"] = dt.Rows[0]["username"].ToString();
                Response.Redirect("csrdashboards.aspx");
            }
        }

请帮忙

1 个答案:

答案 0 :(得分:0)

经过研究和调试,我得到了自己的答案。

我走了: -

private void BindDropdownlist()
    {
        try
        {
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultCSRConnection"].ConnectionString))
            {
                tempUsertype = Convert.ToString(Session["UserType"]);
                if (tempUsertype != string.Empty)
                {
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand((tempUsertype == "0" ? "Select * from tbl_ngoname" : "Select * from tbl_ngoname where id in (Select NgoId from tbl_User where username=@username)"), conn))
                    {
                        cmd.Parameters.AddWithValue("@username", Convert.ToString(Session["User"]));
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        DataSet ds = new DataSet();
                        da.Fill(ds);
                        ddlngonameselect.DataValueField = ds.Tables[0].Columns["Id"].ToString();
                        ddlngonameselect.DataTextField = ds.Tables[0].Columns["ngo_name"].ToString();
                        ddlngonameselect.DataSource = ds.Tables[0];
                        ddlngonameselect.SelectedIndex = 0;

                        if (Session["UserType"] == "1" || Session["UserType"] == "2")
                        {
                            ddlngonameselect.Enabled = false;
                        }
                        else
                        {
                            ddlngonameselect.Items.Insert(0, new ListItem() { Text = "--Select NGO--", Value = "0" });
                            ddlngonameselect.Enabled = true;
                        }

                        ddlngonameselect.DataBind();
                    }
                }
                else
                {
                    Response.Write("Some error");
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }

我试过这个,它对我有用:)