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;
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**/
/// <summary>
/// 用户权限的设计
/// 可以对用户添加角色,也可以对用户单独设置权限,互不影响;最后把角色的权限和用户单独的权限结合到一块成为用户的权限;
/// 最后返回用户功能时会有重复,使用时可以创建一个视图,对重复数据使用“distinct”过滤即可,往useraction表中添加“拒绝功能”时必须删除已经存在的这个功能
/// </summary>
public
class
ActionOperate
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
internal readonly string connstring = "server=.;database=stoa;uid=sa;pwd=;";
internal SqlConnection scn;
internal SqlCommand scm;
public ActionOperate()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//
// TODO: 在此处添加构造函数逻辑
//
scn = new SqlConnection(this.connstring);
scm = new SqlCommand();
scm.Connection = scn;
}
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// sql通用操作
/// </summary>
/// <param name="sqlCommandText"></param>
public void DbOperate(string sqlCommandText)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
scm.CommandText = sqlCommandText;
scn.Open();
scm.ExecuteNonQuery();
}
catch (Exception ex)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
HttpContext.Current.Response.Write(ex.Message);
}
finally
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
scn.Close();
}
}
![](/Images/OutliningIndicators/InBlock.gif)
public DataSet DbDataSet(string sqlCommandText)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
DataSet ds = new DataSet();
![](/Images/OutliningIndicators/InBlock.gif)
scm.CommandText = sqlCommandText;
SqlDataAdapter sda = new SqlDataAdapter(scm);
sda.Fill(ds);
return ds;
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 添加一个角色
/// </summary>
/// <param name="roleName"></param>
public void AddRole(string roleName)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
DbOperate("insert into roles(role_name) values ('" + roleName + "')");
}
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 删除一个角色
/// </summary>
/// <param name="roleId"></param>
public void DeleteRole(string roleId)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.DbOperate("delete from roles where role_id = " + roleId);
}
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 修改角色
/// </summary>
/// <param name="roleId"></param>
/// <param name="roleNameNew"></param>
public void UpdateRole(string roleId, string roleNameNew)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.DbOperate("update roles set role_name='" + roleNameNew + "' where role_id = " + roleId);
}
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 返回角色dataset
/// </summary>
/// <returns></returns>
public DataSet RoleDataSet()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
DataSet ds = DbDataSet("select * from roles ");
return ds;
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 添加功能
/// </summary>
/// <param name="ActionName"></param>
public void AddAction(string ActionName)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
DbOperate("insert into Action(Action_name) values ('" + ActionName + "')");
}
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 删除功能
/// </summary>
/// <param name="ActionId"></param>
public void DeleteAction(string ActionId)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.DbOperate("delete from Action where Action_id = " + ActionId);
}
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 修改功能
/// </summary>
/// <param name="ActionId"></param>
/// <param name="ActionNameNew"></param>
public void UpdateAction(string ActionId, string ActionNameNew)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.DbOperate("update Actions set Action_name='" + ActionNameNew + "' where Action_id = " + ActionId);
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 添加角色功能
/// </summary>
/// <param name="roleId"></param>
/// <param name="actionId"></param>
public void AddRoleAction(string roleId, string actionId)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
DbOperate("insert into roles_action(role_id,action_id) values (" + roleId + "," + actionId + ")");
}
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 删除角色功能
/// </summary>
/// <param name="roleId"></param>
/// <param name="actionId"></param>
public void DeleteRoleAction(string roleId, string actionId)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.DbOperate("delete from roles_action where role_id=" + roleId + " and action_id = " + actionId);
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <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)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
DeleteUserAction(userId, actionId);
DbOperate("insert into user_action(user_id,action_id,refuse) values (" + userId + "," + actionId + "," + refsevalue_0_or_1 + ")");
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <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)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
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)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
this.DbOperate("delete from user_action where user_id=" + userId + " and action_id = " + actionId);
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 添加用户角色
/// </summary>
/// <param name="userId"></param>
/// <param name="roleId"></param>
public void AddUserRole(string userId, string roleId)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
DbOperate("insert into user_role(user_id,role_id) values (" + userId + "," + roleId + ")");
}
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 删除用户角色
/// </summary>
/// <param name="userId"></param>
/// <param name="roleId"></param>
public void DeleteUserRole(string userId, string roleId)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.DbOperate("delete from user_role where user_id=" + userId + " and role_id = " + roleId);
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 返回用户是否有某个功能
/// </summary>
/// <param name="userId"></param>
/// <param name="actionId"></param>
/// <returns></returns>
public bool HasAction(string userId, string actionId)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return UserActionDs(userId).Tables[0].Select("action_id=" + actionId).Length > 0;
}
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 返回某个用户的所有功能
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public DataSet UserActionDs(string userId)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
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;
}
}
数据库
转载于:https://www.cnblogs.com/askyes/archive/2007/08/30/875967.html