关于登录权限判断的问题,请教各位高手! 我使用的是VS2010,导航控件是TreeView(节点数据源是XML文件),我将不同用户登录后拥有的权限树节点的XML文件写到数据库表里面去了,要实现在用户登录时从数据库里面读取XML文件,进行权限判断,不同的用户实现登录后,不同的导航节点,这些代码怎么写啊?请教各位高手给点提示,有实例代码,那是最好了,谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据库中保存角色,相关编号ds.ReadXML,判断相关功能是否ds等中,实现加载 protected void Page_Load(object sender, EventArgs e) { if (Session["user"] != null) { //得到用户信息 UserInfo user = (UserInfo)Session["user"]; DisplayUserMenu(user); } } protected void DisplayUserMenu(UserInfo user) { TVSysFun.Nodes.Clear(); IList<SysFun> parentSysFun = SysFunManager.GetAllParentNodeInfoByUserId(user); foreach (SysFun sfParent in parentSysFun) { string nodeId = sfParent.NodeId.ToString();//第一层节点id string displayName = sfParent.DisplayName;//第一层节点显示名称 TreeNode fatherNode = this.CreatTreeNode(displayName, nodeId, "", "Images/tree/folder_closed.gif");//根据节点信息,创建第一层节点 CreateChildTree(nodeId, user, fatherNode);//创建子节点 TVSysFun.Nodes.Add(fatherNode);//将第一层节点加入到用户权限TreeView中 } } //创建第二层节点 private void CreateChildTree(string nodeId, UserInfo user, TreeNode fatherNode) { IList<SysFun> childSysFun = SysFunManager.GetSysFunByParentNodeIdAndUserId(user, int.Parse(nodeId));//获得父节点为nodeId的所有子节点 foreach (SysFun sfChild in childSysFun) { string childNodeId = sfChild.NodeId.ToString();//第二层节点id string childDisplayName = sfChild.DisplayName;//第二层节点名称 string nodeURL = ResolveUrl(sfChild.NodeURL.Trim());//将路径转换为在客户端可用的URL TreeNode childNode = this.CreatTreeNode(childDisplayName, childNodeId, nodeURL, "Images/tree/folder_open.gif");//根据节点信息,创建第二层节点 AddTree(fatherNode, childNode);//将子节点加入到父节点中 } } /// <summary> /// 创建一个树节点,返回一个树节点对象,参数内容是: /// 节点名称,节点ID,链接地址,正常图标,展开后的图标 /// </summary> private TreeNode CreatTreeNode(string strText, string strId, string strUrl, string strImg) { TreeNode newNode = new TreeNode(); newNode.Text = strText; newNode.Value = strId; newNode.NavigateUrl = strUrl; newNode.ImageUrl = strImg; return newNode; } /// <summary> /// 把子节点添加到父节点当中 /// </summary> private void AddTree(TreeNode FatherNode, TreeNode ChildNode) { FatherNode.ChildNodes.Add(ChildNode); } vs2005是如何使用linq 关于gridview一个问题。烦了很多天了。帮忙解决一下,谢谢各位! 谁给个MVC增删改查的demo 包括分页 提问 怎样在前台的js调用后台的一个带参数的方法 求企业网站模板 aspnet_wp进程 C#.net的查询后修改代码问题 请问一下从数据库中读取类目形成下拉式的网页菜单怎么做呢? 问一个获取时间的问题 自动登录指定网站功能 [江湖救急] .net网站发送louts邮件
ds.ReadXML,判断相关功能是否ds等中,实现加载
{
if (Session["user"] != null)
{
//得到用户信息
UserInfo user = (UserInfo)Session["user"];
DisplayUserMenu(user);
}
} protected void DisplayUserMenu(UserInfo user)
{
TVSysFun.Nodes.Clear();
IList<SysFun> parentSysFun = SysFunManager.GetAllParentNodeInfoByUserId(user);
foreach (SysFun sfParent in parentSysFun)
{
string nodeId = sfParent.NodeId.ToString();//第一层节点id
string displayName = sfParent.DisplayName;//第一层节点显示名称 TreeNode fatherNode = this.CreatTreeNode(displayName, nodeId, "", "Images/tree/folder_closed.gif");//根据节点信息,创建第一层节点 CreateChildTree(nodeId, user, fatherNode);//创建子节点 TVSysFun.Nodes.Add(fatherNode);//将第一层节点加入到用户权限TreeView中
} } //创建第二层节点
private void CreateChildTree(string nodeId, UserInfo user, TreeNode fatherNode)
{
IList<SysFun> childSysFun = SysFunManager.GetSysFunByParentNodeIdAndUserId(user, int.Parse(nodeId));//获得父节点为nodeId的所有子节点 foreach (SysFun sfChild in childSysFun)
{
string childNodeId = sfChild.NodeId.ToString();//第二层节点id
string childDisplayName = sfChild.DisplayName;//第二层节点名称
string nodeURL = ResolveUrl(sfChild.NodeURL.Trim());//将路径转换为在客户端可用的URL TreeNode childNode = this.CreatTreeNode(childDisplayName, childNodeId, nodeURL, "Images/tree/folder_open.gif");//根据节点信息,创建第二层节点
AddTree(fatherNode, childNode);//将子节点加入到父节点中
}
}
/// <summary>
/// 创建一个树节点,返回一个树节点对象,参数内容是:
/// 节点名称,节点ID,链接地址,正常图标,展开后的图标
/// </summary>
private TreeNode CreatTreeNode(string strText, string strId, string strUrl, string strImg)
{
TreeNode newNode = new TreeNode();
newNode.Text = strText;
newNode.Value = strId;
newNode.NavigateUrl = strUrl;
newNode.ImageUrl = strImg;
return newNode;
} /// <summary>
/// 把子节点添加到父节点当中
/// </summary>
private void AddTree(TreeNode FatherNode, TreeNode ChildNode)
{
FatherNode.ChildNodes.Add(ChildNode);
}