帮帮小女子一下,有关不同权限登录的问题 我想做一个以不同权限登录的类似与库存管理系统,里面还要以树形目录实现,想请位高手辅导一下我,谢谢啦,可以在这里留言,以后咱们可以留下联系方式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据库存储树节点名称,用户角色表配置用户的角色。角色节点表,配置角色有哪些权限,然后登陆的时候另:联系方式就算了。namespace CN.Web{ public partial class LeftTreeView : System.Web.UI.Page { protected DataTable dataTbl1, dataTbl2; protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { string wherstr=""; if (Request.Cookies["Username"].Value.ToString().ToLower () == "admin" && Request.Cookies["Password"].Value.ToString() == "1") { wherstr = ""; } else { if (Session["RoleId"] != null) { string roleid = Session["RoleId"].ToString(); wherstr = " where page_id in(select page_id from RolePageRelationship where Role_id=" + roleid + ")"; } } InitRootNodeDataTable(wherstr); initTree(dataTbl1); //tvCategory.CollapseAll(); } } /// <summary> /// 初始化 RootNode DataTable /// </summary> private void InitRootNodeDataTable(string wherstr) { dataTbl1 = new DataTable(); dataTbl1 = DbAccess.GetDS("select * from page " + wherstr).Tables[0]; //读取并将公共的分类信息添加到数据集中 dataTbl1.TableName = "TreeView"; } /// <summary> /// 初始化树 /// </summary> /// <param name="dt">取得所有的分类</param> private void initTree(DataTable dt) { this.tvCategory.Nodes.Clear();//先清理原先的 if (dt != null && dt.Rows.Count == 0) return; DataRow[] Rows = dt.Select("Page_parent=0 "); if (Rows.Length == 0) return; foreach (DataRow row in Rows) { TreeNode tNode = new TreeNode(); tNode.Value = row["Page_id"].ToString(); tNode.Text = row["Page_name"].ToString(); //tNode.NavigateUrl = ""; //tNode.Target = "MainFrameBS";//指向父窗体右边的那个iframe this.tvCategory.Nodes.Add(tNode); tNode.Expanded = true; createChildNode(tNode, tNode.Value); } ////添加一级“未分类”节点 //TreeNode tNode1 = new TreeNode(); //tNode1.Value = "-1"; //tNode1.Text = "未分类"; //tNode1.NavigateUrl = "BasicInfoConfig.aspx?Class_ID=" + tNode1.Value + ""; //tNode1.Target = "MainFrameBS";//指向父窗体右边的那个iframe //this.tvCategory.Nodes.Add(tNode1); //tNode1.Expanded = true; } /// <summary> /// 创建子节点 /// </summary> /// <param name="node"></param> /// <param name="strParentNo"></param> private void createChildNode(TreeNode node, string strParentNo) { //string parentId=""; DataRow[] Rows = this.dataTbl1.Select("Page_parent='" + strParentNo + "' and Page_parent<>0"); foreach (DataRow row in Rows) { TreeNode childNode = new TreeNode(); childNode.Value = row["Page_id"].ToString(); childNode.Target = "mainFrame";//指向父窗体右边的那个iframe childNode.Text = row["Page_name"].ToString(); childNode.NavigateUrl = "~/"+row["Page_url"].ToString(); ; node.ChildNodes.Add(childNode); createChildNode(childNode, row["Page_id"].ToString()); } } }} ASP.NET自带的TREEVIEW就可以哦。 用xml来存储菜单树吧,挺简单的 Data.GetRole().TOString()+".xml" 首先不同的权限要用个radiobuttonlist控件,这里就举个两种权限的例子public partial class login : System.Web.UI.Page{ protected void btnSubmit_Click(object sender, EventArgs e) { //1、接收数据 //接收用户名对应的值 string userName = txtUserName.Text; //接收密码对应的值 string passWord = txtPassword.Text; int fcount=0; if (RadioUser.SelectedItem.Text == "用户1") fcount=1; else if (RadioUser.SelectedItem.Text == "用户2") fcount=2; //2、处理数据 //调用CheckUser方法,验证用户是否合法,返回true则合法,否则不合法 bool result = CheckUser(userName, passWord,fcount); //3、页面跳转 //根据处理数据的结果,进行不同的页面转向 if (!result) { //当前用户不合法 Response.Write("<script language='javascript'>alter('用户名或者密码不正确,请重试!')</script>"); return; } else { //当前用户合法 //将用户名放入session对象中,以便后续页面访问 if (fcount == 2) { Session["userName"] = userName; Response.Redirect("mtoyAdmin.aspx"); } else if (fcount == 1) { Session["userName"] = userName; Response.Redirect("mtoyUser.aspx"); } } } //验证用户是否合法,返回true或者false private bool CheckUser(string userName, string passWord,int fcount) { //首先进行数据库的操作 //建立连接字符串 string connectionString = @"Data Source=.\sqlexpress;Initial Catalog=toyDB;User ID=sa;passWord=1234"; //使用连接字符串,创建连接 SqlConnection con = new SqlConnection(connectionString);//括号内为连接对象 //打开连接对象 con.Open(); //创建Command对象 SqlCommand cmd = new SqlCommand(); //创建SQL语句 string sql = ""; if (fcount == 2) sql = "select * from toy_userInfo2 where userName='" + userName + "' and passWord='" + passWord + "'"; else if (fcount == 1) sql = "select * from toy_userInfo1 where userName='" + userName + "' and passWord='" + passWord + "'"; //为Command对象赋予参数 cmd.Connection = con; cmd.CommandText = sql; //执行查询操作。返回一个表 SqlDataReader sdr=cmd.ExecuteReader(); bool flag = false; if (sdr.Read())//判定有没有数据 { //如果有数据意味着用户合法 flag = true; } //收尾工作必须到位 //关闭连接对象 if (con != null) { con.Close(); } //返回结果 return flag; }} [迷糊]"什么叫异步" 讨论 .net下如何播放LRC歌词? 请教:把A项目中的页面如何引入到B项目的页面中 很糟糕,哪位大哥,大姐能指导一下! 一个动态加载用户控件,并从用户控件取值的问题 怎么将内存中的arraylist写入文本文件? Crystal Reports 的打印问题,大家帮忙看一下! 请教高手 怎么把session干掉,创建个新的,是不 同sessionid的新session 有两个样式可以切换,div切换样式后表现出来的样子变了,网页看到的代码样式也变了,但是jq事件绑定的事件没有变 控件自动下载为题 菜鸟求教~~·
{
public partial class LeftTreeView : System.Web.UI.Page
{
protected DataTable dataTbl1, dataTbl2;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string wherstr="";
if (Request.Cookies["Username"].Value.ToString().ToLower () == "admin" && Request.Cookies["Password"].Value.ToString() == "1")
{
wherstr = "";
}
else
{
if (Session["RoleId"] != null)
{
string roleid = Session["RoleId"].ToString();
wherstr = " where page_id in(select page_id from RolePageRelationship where Role_id=" + roleid + ")";
}
}
InitRootNodeDataTable(wherstr);
initTree(dataTbl1);
//tvCategory.CollapseAll();
}
}
/// <summary>
/// 初始化 RootNode DataTable
/// </summary>
private void InitRootNodeDataTable(string wherstr)
{
dataTbl1 = new DataTable(); dataTbl1 = DbAccess.GetDS("select * from page " + wherstr).Tables[0];
//读取并将公共的分类信息添加到数据集中
dataTbl1.TableName = "TreeView";
} /// <summary>
/// 初始化树
/// </summary>
/// <param name="dt">取得所有的分类</param>
private void initTree(DataTable dt)
{
this.tvCategory.Nodes.Clear();//先清理原先的
if (dt != null && dt.Rows.Count == 0) return;
DataRow[] Rows = dt.Select("Page_parent=0 ");
if (Rows.Length == 0) return;
foreach (DataRow row in Rows)
{
TreeNode tNode = new TreeNode();
tNode.Value = row["Page_id"].ToString();
tNode.Text = row["Page_name"].ToString();
//tNode.NavigateUrl = "";
//tNode.Target = "MainFrameBS";//指向父窗体右边的那个iframe this.tvCategory.Nodes.Add(tNode);
tNode.Expanded = true;
createChildNode(tNode, tNode.Value);
} ////添加一级“未分类”节点
//TreeNode tNode1 = new TreeNode();
//tNode1.Value = "-1";
//tNode1.Text = "未分类";
//tNode1.NavigateUrl = "BasicInfoConfig.aspx?Class_ID=" + tNode1.Value + "";
//tNode1.Target = "MainFrameBS";//指向父窗体右边的那个iframe //this.tvCategory.Nodes.Add(tNode1);
//tNode1.Expanded = true;
}
/// <summary>
/// 创建子节点
/// </summary>
/// <param name="node"></param>
/// <param name="strParentNo"></param>
private void createChildNode(TreeNode node, string strParentNo)
{
//string parentId="";
DataRow[] Rows = this.dataTbl1.Select("Page_parent='" + strParentNo + "' and Page_parent<>0");
foreach (DataRow row in Rows)
{
TreeNode childNode = new TreeNode(); childNode.Value = row["Page_id"].ToString();
childNode.Target = "mainFrame";//指向父窗体右边的那个iframe
childNode.Text = row["Page_name"].ToString();
childNode.NavigateUrl = "~/"+row["Page_url"].ToString(); ; node.ChildNodes.Add(childNode); createChildNode(childNode, row["Page_id"].ToString());
}
}
}
}
Data.GetRole().TOString()+".xml"
public partial class login : System.Web.UI.Page
{
protected void btnSubmit_Click(object sender, EventArgs e)
{
//1、接收数据
//接收用户名对应的值
string userName = txtUserName.Text;
//接收密码对应的值
string passWord = txtPassword.Text;
int fcount=0;
if (RadioUser.SelectedItem.Text == "用户1")
fcount=1;
else if (RadioUser.SelectedItem.Text == "用户2")
fcount=2;
//2、处理数据
//调用CheckUser方法,验证用户是否合法,返回true则合法,否则不合法
bool result = CheckUser(userName, passWord,fcount);
//3、页面跳转
//根据处理数据的结果,进行不同的页面转向
if (!result)
{
//当前用户不合法
Response.Write("<script language='javascript'>alter('用户名或者密码不正确,请重试!')</script>");
return;
}
else
{
//当前用户合法
//将用户名放入session对象中,以便后续页面访问
if (fcount == 2)
{
Session["userName"] = userName;
Response.Redirect("mtoyAdmin.aspx");
}
else if (fcount == 1)
{
Session["userName"] = userName;
Response.Redirect("mtoyUser.aspx");
}
}
} //验证用户是否合法,返回true或者false
private bool CheckUser(string userName, string passWord,int fcount)
{
//首先进行数据库的操作
//建立连接字符串
string connectionString = @"Data Source=.\sqlexpress;Initial Catalog=toyDB;User ID=sa;passWord=1234";
//使用连接字符串,创建连接
SqlConnection con = new SqlConnection(connectionString);//括号内为连接对象
//打开连接对象
con.Open();
//创建Command对象
SqlCommand cmd = new SqlCommand();
//创建SQL语句
string sql = "";
if (fcount == 2)
sql = "select * from toy_userInfo2 where userName='" + userName + "' and passWord='" + passWord + "'";
else if (fcount == 1)
sql = "select * from toy_userInfo1 where userName='" + userName + "' and passWord='" + passWord + "'";
//为Command对象赋予参数
cmd.Connection = con;
cmd.CommandText = sql;
//执行查询操作。返回一个表
SqlDataReader sdr=cmd.ExecuteReader();
bool flag = false;
if (sdr.Read())//判定有没有数据
{
//如果有数据意味着用户合法
flag = true;
}
//收尾工作必须到位
//关闭连接对象
if (con != null)
{
con.Close();
}
//返回结果
return flag;
}}