C#关于角色权限系统
2014-09-30 15:56
375 查看
1.创建角色权限表
create table t_GroupFormsAuthority(
--FGfaID numeric(6,0) identity primary key ,
FUGroupNo varchar(50) not null ,
FSFormNo varchar(100) not null ,--系统窗口、报表代码
FGfaIsOk char(1) default '1' ,
FStatus char(1) default '1',---
FFlag char(1) default '1',---
FCreateDate datetime default getdate() ,
FCreator varchar(20) null ,
FModifyDate datetime default getdate() ,
FModifier varchar(20) null ,
FMemo text null ,
constraint PK_t_GroupFormsAuthority primary key(FUGroupNo,FSFormNo)
)
go
2.插入数据
Admin MenuItemBase 1 1
Admin MenuItemBase_01 1 1
Admin MenuItemFile 1 1
Admin MenuItemFile_Exit 1 1
Admin MenuItemFile_Print 1 1
Admin MenuItemHelp 1 1
Admin MenuItemWindow 1 1
3、新建项目
1、界面如图,
加入菜单项并命名为:menuMain
2、程序代码:
新建代码文件:setMenu.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;
using DBClassLib;namespace ERP
{
public class SetMenu
{
private MenuStrip msMain; /// <summary>
/// 构造函数
/// </summary>
/// <param name="mMain"></param>
public SetMenu(MenuStrip mMain)
{
msMain = mMain;
msMain.Visible = true;
} /// <summary>
/// 设置菜单权限
/// </summary>
public void SetMenuPower()
{
string strSql;
int mItemCount, i, j;
mItemCount = msMain.Items.Count;
strSql = "SELECT FSFormNo,FGfaIsOk FROM t_GroupFormsAuthority WHERE FStatus='1' AND FUGroupNo='" + Global.userInfo[2] + "'";
DBOperator db = DBOperator.GetDBOperator(Global.strConnection);
DataTable dt = new DataTable();
db.Open();
dt = db.GetDataTable(strSql);
if (dt.Rows.Count > 0)
{
for (i = 0; i < mItemCount; i++)
{
for (j = 0; j < dt.Rows.Count; j++)
{
if ((msMain.Items[i].Name.ToString() == dt.Rows[j]["FSFormNo"].ToString()) && (dt.Rows[j][1].ToString() == "1"))
{
SetMenuItemUsability(msMain.Items[i], true);
GetSubMenu(dt,(ToolStripMenuItem) msMain.Items[i]);
break;
}
else
{
SetMenuItemUsability(msMain.Items[i], false);
}
}
}
}
else
{
msMain.Visible = false;
}
db.Close();
}
private void GetSubMenu(DataTable dt, ToolStripMenuItem tsmItem)//ToolStripItem mItems)
{
//ToolStripMenuItem tsmItem=new ToolStripMenuItem() ;
int i,j,mItemsCount;
mItemsCount = tsmItem.DropDownItems.Count;
if (mItemsCount > 0)
{
for (i = 0; i < mItemsCount; i++)
{
for (j = 0; j < dt.Rows.Count; j++)
{
if (tsmItem.DropDownItems[i].Name == dt.Rows[j][0].ToString() && dt.Rows[j][1].ToString() == "1")
{
SetMenuItemUsability(tsmItem.DropDownItems[i], true);
break; }
else
{
SetMenuItemUsability(tsmItem.DropDownItems[i], false);
}
}
}
}
} /// <summary>
/// 设置菜单可用性
4、主窗口调用:
SetMenu sm=new
SetMenu(menuMain);
sm.SetMenuPower();
转载自 http://hi.baidu.com/grounder/blog/item/ad0755ca7121d815bf09e624.html
create table t_GroupFormsAuthority(
--FGfaID numeric(6,0) identity primary key ,
FUGroupNo varchar(50) not null ,
FSFormNo varchar(100) not null ,--系统窗口、报表代码
FGfaIsOk char(1) default '1' ,
FStatus char(1) default '1',---
FFlag char(1) default '1',---
FCreateDate datetime default getdate() ,
FCreator varchar(20) null ,
FModifyDate datetime default getdate() ,
FModifier varchar(20) null ,
FMemo text null ,
constraint PK_t_GroupFormsAuthority primary key(FUGroupNo,FSFormNo)
)
go
2.插入数据
Admin MenuItemBase 1 1
Admin MenuItemBase_01 1 1
Admin MenuItemFile 1 1
Admin MenuItemFile_Exit 1 1
Admin MenuItemFile_Print 1 1
Admin MenuItemHelp 1 1
Admin MenuItemWindow 1 1
3、新建项目
1、界面如图,
加入菜单项并命名为:menuMain
2、程序代码:
新建代码文件:setMenu.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;
using DBClassLib;namespace ERP
{
public class SetMenu
{
private MenuStrip msMain; /// <summary>
/// 构造函数
/// </summary>
/// <param name="mMain"></param>
public SetMenu(MenuStrip mMain)
{
msMain = mMain;
msMain.Visible = true;
} /// <summary>
/// 设置菜单权限
/// </summary>
public void SetMenuPower()
{
string strSql;
int mItemCount, i, j;
mItemCount = msMain.Items.Count;
strSql = "SELECT FSFormNo,FGfaIsOk FROM t_GroupFormsAuthority WHERE FStatus='1' AND FUGroupNo='" + Global.userInfo[2] + "'";
DBOperator db = DBOperator.GetDBOperator(Global.strConnection);
DataTable dt = new DataTable();
db.Open();
dt = db.GetDataTable(strSql);
if (dt.Rows.Count > 0)
{
for (i = 0; i < mItemCount; i++)
{
for (j = 0; j < dt.Rows.Count; j++)
{
if ((msMain.Items[i].Name.ToString() == dt.Rows[j]["FSFormNo"].ToString()) && (dt.Rows[j][1].ToString() == "1"))
{
SetMenuItemUsability(msMain.Items[i], true);
GetSubMenu(dt,(ToolStripMenuItem) msMain.Items[i]);
break;
}
else
{
SetMenuItemUsability(msMain.Items[i], false);
}
}
}
}
else
{
msMain.Visible = false;
}
db.Close();
}
private void GetSubMenu(DataTable dt, ToolStripMenuItem tsmItem)//ToolStripItem mItems)
{
//ToolStripMenuItem tsmItem=new ToolStripMenuItem() ;
int i,j,mItemsCount;
mItemsCount = tsmItem.DropDownItems.Count;
if (mItemsCount > 0)
{
for (i = 0; i < mItemsCount; i++)
{
for (j = 0; j < dt.Rows.Count; j++)
{
if (tsmItem.DropDownItems[i].Name == dt.Rows[j][0].ToString() && dt.Rows[j][1].ToString() == "1")
{
SetMenuItemUsability(tsmItem.DropDownItems[i], true);
break; }
else
{
SetMenuItemUsability(tsmItem.DropDownItems[i], false);
}
}
}
}
} /// <summary>
/// 设置菜单可用性
4、主窗口调用:
SetMenu sm=new
SetMenu(menuMain);
sm.SetMenuPower();
转载自 http://hi.baidu.com/grounder/blog/item/ad0755ca7121d815bf09e624.html
相关文章推荐
- 关于(系统/用户对象)权限、角色及角色内权限的相关表 [role 、privilege]
- 关于基于java的用户角色权限系统的前后台实现构想
- 关于系统中权限和角色设计的问题
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 角色权限的配置页面改进优化
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 适合大型企业信息化应用使用的角色权限管理体系
- (转)关于用户角色权限的一点想法
- 关于权限角色管理的一些想法
- 关于权限管理的系统的构思
- 关于用户角色权限的一点想法
- 关于ubuntu系统启动时显示.dmrc权限不正确的问题的解决
- 关于用户角色权限的一点想法
- >+ 系统用户权限与角色分析
- 关于系统权限的通用设计
- 权限管理系统(4):角色和组
- 关于企业系统之间交互是app server的角色
- 基于组件技术的C#开发 ---组件分类系统 ---角色分类系统
- 关于用户角色权限的一点想法(1)
- 系统用户权限与角色分析
- 关于权限管理的系统的构思
- 面试题 简单基于角色控制的权限管理系统