zoukankan
html css js c++ java
权限设计 【数据库和代码】 GO
using
System;
using
System.Data;
using
System.Data.SqlClient;
using
System.Configuration;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
/**/
///
<summary>
///
用户权限的设计
///
可以对用户添加角色,也可以对用户单独设置权限,互不影响;最后把角色的权限和用户单独的权限结合到一块成为用户的权限;
///
最后返回用户功能时会有重复,使用时可以创建一个视图,对重复数据使用“distinct”过滤即可,往useraction表中添加“拒绝功能”时必须删除已经存在的这个功能
///
</summary>
public
class
ActionOperate
{
internal
readonly
string
connstring
=
"
server=.;database=stoa;uid=sa;pwd=;
"
;
internal
SqlConnection scn;
internal
SqlCommand scm;
public
ActionOperate()
{
//
//
TODO: 在此处添加构造函数逻辑
//
scn
=
new
SqlConnection(
this
.connstring);
scm
=
new
SqlCommand();
scm.Connection
=
scn;
}
//
/**/
///
<summary>
///
sql通用操作
///
</summary>
///
<param name="sqlCommandText"></param>
public
void
DbOperate(
string
sqlCommandText)
{
try
{
scm.CommandText
=
sqlCommandText;
scn.Open();
scm.ExecuteNonQuery();
}
catch
(Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
}
finally
{
scn.Close();
}
}
public
DataSet DbDataSet(
string
sqlCommandText)
{
DataSet ds
=
new
DataSet();
scm.CommandText
=
sqlCommandText;
SqlDataAdapter sda
=
new
SqlDataAdapter(scm);
sda.Fill(ds);
return
ds;
}
//
/**/
///
<summary>
///
添加一个角色
///
</summary>
///
<param name="roleName"></param>
public
void
AddRole(
string
roleName)
{
DbOperate(
"
insert into roles(role_name) values ('
"
+
roleName
+
"
')
"
);
}
//
/**/
///
<summary>
///
删除一个角色
///
</summary>
///
<param name="roleId"></param>
public
void
DeleteRole(
string
roleId)
{
this
.DbOperate(
"
delete from roles where role_id =
"
+
roleId);
}
//
/**/
///
<summary>
///
修改角色
///
</summary>
///
<param name="roleId"></param>
///
<param name="roleNameNew"></param>
public
void
UpdateRole(
string
roleId,
string
roleNameNew)
{
this
.DbOperate(
"
update roles set role_name='
"
+
roleNameNew
+
"
' where role_id =
"
+
roleId);
}
//
/**/
///
<summary>
///
返回角色dataset
///
</summary>
///
<returns></returns>
public
DataSet RoleDataSet()
{
DataSet ds
=
DbDataSet(
"
select * from roles
"
);
return
ds;
}
//
/**/
///
<summary>
///
添加功能
///
</summary>
///
<param name="ActionName"></param>
public
void
AddAction(
string
ActionName)
{
DbOperate(
"
insert into Action(Action_name) values ('
"
+
ActionName
+
"
')
"
);
}
//
/**/
///
<summary>
///
删除功能
///
</summary>
///
<param name="ActionId"></param>
public
void
DeleteAction(
string
ActionId)
{
this
.DbOperate(
"
delete from Action where Action_id =
"
+
ActionId);
}
//
/**/
///
<summary>
///
修改功能
///
</summary>
///
<param name="ActionId"></param>
///
<param name="ActionNameNew"></param>
public
void
UpdateAction(
string
ActionId,
string
ActionNameNew)
{
this
.DbOperate(
"
update Actions set Action_name='
"
+
ActionNameNew
+
"
' where Action_id =
"
+
ActionId);
}
//
/**/
///
<summary>
///
添加角色功能
///
</summary>
///
<param name="roleId"></param>
///
<param name="actionId"></param>
public
void
AddRoleAction(
string
roleId,
string
actionId)
{
DbOperate(
"
insert into roles_action(role_id,action_id) values (
"
+
roleId
+
"
,
"
+
actionId
+
"
)
"
);
}
//
/**/
///
<summary>
///
删除角色功能
///
</summary>
///
<param name="roleId"></param>
///
<param name="actionId"></param>
public
void
DeleteRoleAction(
string
roleId,
string
actionId)
{
this
.DbOperate(
"
delete from roles_action where role_id=
"
+
roleId
+
"
and action_id =
"
+
actionId);
}
//
/**/
///
<summary>
///
添加或拒绝用户使用某个功能
///
</summary>
///
<param name="userId"></param>
///
<param name="actionId"></param>
///
<param name="refsevalue_0_or_1">
0表示用户拥有这个功能,1表示被拒绝的权限
</param>
public
void
AddUserAction(
string
userId,
string
actionId,
string
refsevalue_0_or_1)
{
DeleteUserAction(userId, actionId);
DbOperate(
"
insert into user_action(user_id,action_id,refuse) values (
"
+
userId
+
"
,
"
+
actionId
+
"
,
"
+
refsevalue_0_or_1
+
"
)
"
);
}
/**/
///
<summary>
///
删除用户功能
///
</summary>
///
<param name="userId"></param>
///
<param name="actionId"></param>
///
<param name="refsevalue_0_or_1">
0表示用户拥有这个功能,1表示被拒绝的权限
</param>
public
void
DeleteUserAction(
string
userId,
string
actionId,
string
refsevalue_0_or_1)
{
this
.DbOperate(
"
delete from user_action where refuse=
"
+
refsevalue_0_or_1
+
"
and user_id=
"
+
userId
+
"
and action_id =
"
+
actionId);
}
public
void
DeleteUserAction(
string
userId,
string
actionId)
{
this
.DbOperate(
"
delete from user_action where user_id=
"
+
userId
+
"
and action_id =
"
+
actionId);
}
//
/**/
///
<summary>
///
添加用户角色
///
</summary>
///
<param name="userId"></param>
///
<param name="roleId"></param>
public
void
AddUserRole(
string
userId,
string
roleId)
{
DbOperate(
"
insert into user_role(user_id,role_id) values (
"
+
userId
+
"
,
"
+
roleId
+
"
)
"
);
}
//
/**/
///
<summary>
///
删除用户角色
///
</summary>
///
<param name="userId"></param>
///
<param name="roleId"></param>
public
void
DeleteUserRole(
string
userId,
string
roleId)
{
this
.DbOperate(
"
delete from user_role where user_id=
"
+
userId
+
"
and role_id =
"
+
roleId);
}
//
/**/
///
<summary>
///
返回用户是否有某个功能
///
</summary>
///
<param name="userId"></param>
///
<param name="actionId"></param>
///
<returns></returns>
public
bool
HasAction(
string
userId,
string
actionId)
{
return
UserActionDs(userId).Tables[
0
].Select(
"
action_id=
"
+
actionId).Length
>
0
;
}
/**/
///
<summary>
///
返回某个用户的所有功能
///
</summary>
///
<param name="userId"></param>
///
<returns></returns>
public
DataSet UserActionDs(
string
userId)
{
string
sqlcommand
=
"
select action_id from user_action where refuse=0 and user_id=
"
+
userId
+
"
union
"
+
"
select role_action.action_id from role_action,user_role where user_role.role_id=role_action.role_id and user_role.user_id=
"
+
userId
+
"
and role_action.action_id not in (select action_id from user_action where user_id=
"
+
userId
+
"
and refuse=1)
"
;
DataSet ds
=
DbDataSet(sqlcommand);
return
ds;
}
}
数据库
查看全文
相关阅读:
读书笔记,《我还是喜欢东京——带你感受城市细节》
学习笔记:Maven的ArcheType的学习笔记
如何从中企动力(新网)转移域名到阿里云(万网)
Maven自定义Archetype(zz)
读书笔记,《Java 8实战》第五章,使用流
读书笔记,《Java 8实战》,第四章,引入流
读书笔记,《Java 8实战》,第三章,Lambda表达式
读书笔记,《Java8实战》第一章,为什么要关心 Java8
读书笔记,《深入理解java虚拟机》,第三章 垃圾收集器与内存分配策略
行业知识:关于发电量与碳排放和等效植树的换算关系
原文地址:https://www.cnblogs.com/askyes/p/875967.html
最新文章
linux特殊字符目录的访问及删除
rhel7配置腾讯centos的base/epel源
pycharm配置lua编译环境
详解CMS垃圾回收机制
JVM内存不要超过32G
JVM-垃圾回收算法-引用计数法-可达性分析-标记清除-复制算法-标记整理与分代收集
IntegerCache
JDK8的JVM内存结构,元空间替代永久代成为方法区及常量池的变化
用AtomicStampedReference解决ABA问题
查看GC日志
热门文章
JAVA中GC设置
JVM默认老年代回收是 PSMarkSweep(Serial-Old) 还是Parallel Old?
查看JVM使用的默认的垃圾收集器
读书笔记,《反脆弱》,第十二章,泰勒斯的甜葡萄
读书笔记,《反脆弱》,第五章,露天市场和办公楼
读书笔记,《反脆弱》,第四章,杀死我的东西却让其他人更强壮
读书笔记,《反脆弱》,第三章,猫与洗衣机
读书笔记,《反脆弱》,第二章,随处可见的过度补偿与过度反应
《Hadoop大数据架构与实践》学习笔记
读书笔记,《众创时代》(1~6章)
Copyright © 2011-2022 走看看