一下是一个网友写的关于站点访问权限的控制功能,因为暂时有事还没仔细研究,暂且发到这来^_^
protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null && Session["role"] == null)
{
Response.Write("<script>alert('请确定登录权限');location.href='login.aspx';</script>;");
}
if(!Page.IsPostBack)
{
string mysql = "select treeID,context,parentID,depth,rolename,pagename from t_sys_role_tree where rolename = '" + Session["role"].ToString() + "' and (depth>0 or treeID in (select distinct parentID from t_sys_role_tree where depth>0 and rolename = '" + Session["role"].ToString() + "')) order by treeid";
PublicModule pc = new PublicModule();
SqlConnection mycon = pc.connectmycon();
mycon.Open();
SqlDataAdapter mycmd = new SqlDataAdapter(mysql, mycon);
DataSet dt = new DataSet();
mycmd.Fill(dt);
mycon.Close();
this.ViewState["dt"] = dt;
Addtree(0, (TreeNode)null);
}
}
public void Addtree(int parentID, TreeNode pNode)
{
DataSet dt = (DataSet)this.ViewState["dt"];
DataView dvTree = new DataView(dt.Tables[0]);
dvTree.RowFilter = "[PARENTID] = " + parentID;
foreach(DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
{
if (pNode == null)
{
Node.Text = Row["context"].ToString();
TreeView1.Nodes.Add(Node);
Node.Expanded = false;
Addtree(Int32.Parse(Row["treeID"].ToString()), Node);
}
else
{
Node.Text = Row["context"].ToString();
Node.NavigateUrl = Row["pagename"].ToString();
Node.Target = "mainFrame";
pNode.ChildNodes.Add(Node);
Node.Expanded = false;
Addtree(Int32.Parse(Row["treeID"].ToString()), pNode);
}
}
}
}