清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState; //注意使用session时引入命名空间
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using PluSoft.Utils; // Json对象
namespace RightSystem.Server
{
/// <summary>
/// MiniUI_ajaxHandler 的摘要说明
/// </summary>
public class MiniUI_ajaxHandler : IHttpHandler, IRequiresSessionState //注意使用session时要继承IRequiresSessionState接口
{
public void ProcessRequest(HttpContext context)
{
string type=context.Request.QueryString["type"].Trim();
switch (type)
{
case "checkUserName":
CheckUserName(context);
break;
case "login":
Login(context);
break;
case "loadRight":
LoadRight(context);
break;
case "loadRoles":
LoadRoles(context);
break;
case "saveRoleGrid":
SaveRoleGrid(context);
break;
case "loadAllRight":
LoadAllRight(context);
break;
case "getRightByRole":
GetRightByRole(context);
break;
case "saveRight":
SaveRight(context);
break;
default:
break;
}
}
//保存权限
public void SaveRight(HttpContext context)
{
string roleId = context.Request["roleId"];
string rightIDStr = context.Request["rightIDStr"];
string SqlStr = "delete Relationship_2 where roleID=" + roleId + ";";
string[] rightIdArray = rightIDStr.Split(',');
foreach (string rightID in rightIdArray)
{
SqlStr += "insert Relationship_2(roleID,rightID) values(" + roleId + "," + rightID + ");";
}
if (DBHelper.ExecuteTransactions("saveRight", SqlStr))
context.Response.Write("yes");
else
context.Response.Write("no");
}
//获取指定角色所拥有的权限Id
public void GetRightByRole(HttpContext context)
{
//获取角色id
string roleId=context.Request["roleId"];
DataTable dt= DBHelper.GetTables("select * from Relationship_2 where roleID="+roleId);
string rightIDStr = "";
foreach (DataRow rows in dt.Rows)
{
rightIDStr += ","+rows["rightID"].ToString();
}
context.Response.Write(rightIDStr + ",");
}
//加载所有的权限树
public void LoadAllRight(HttpContext context)
{
DataTable dt = DBHelper.GetTables("select * from RightInfo");
string jsonStr = JSON.Encode(dt);
//[{id:"",text:"", pid:""},{},{}]
context.Response.Write(jsonStr);
}
//保存角色
private void SaveRoleGrid(HttpContext context)
{
string jsonStr = context.Request["data"];
//将Json字符串转换为对象进行操作
//jsonStr:[] 序列化为----> ArrayList
//jsonStr:{} 序列化为----> Hashtable
ArrayList list = JSON.Decode(jsonStr) as ArrayList;
string sqlStr = "";
foreach (object obj in list)
{
Hashtable tb = obj as Hashtable;
switch (tb["_state"].ToString())
{
case "removed":
sqlStr += "delete from RoleInfo where roleId=" + tb["roleId"].ToString() + ";";
break;
case "added":
sqlStr += "insert RoleInfo(roleName,roleDesc) values ('" + tb["roleName"].ToString() + "','" + tb["roleDesc"].ToString() + "');";
break;
case "modified":
sqlStr += "update RoleInfo set roleName='" + tb["roleName"].ToString() + "',roleDesc='" + tb["roleDesc"].ToString() + "' where roleId=" + tb["roleId"].ToString() + ";";
break;
}
}
//事务提交Sql
if (DBHelper.ExecuteTransactions("saveRole", sqlStr))
context.Response.Write("yes");
else
context.Response.Write("no");
}
//加载所有角色
private void LoadRoles(HttpContext context)
{
int pageIndex = int.Parse(context.Request["pageIndex"]) + 1;
int pageSize = int.Parse(context.Request["pageSize"]);
string sortField = context.Request["sortField"] == "" ? "roleid" : context.Request["sortField"];//排序字段
string sortOrder = context.Request["sortOrder"] == "" ? "asc" : context.Request["sortOrder"];//排序方向
string key = context.Request["key"]; //获取搜索的关键字
string whereStr = "";
if (!string.IsNullOrEmpty(key))
whereStr = " where roleName like '%" + key + "%'";
int startRowIndex = (pageIndex - 1) * pageSize + 1;
int endRowIndex = pageSize * pageIndex;
DataTable dt = DBHelper.GetTables("select * from (select ROW_NUMBER() over(order by " + sortField + " "
+ sortOrder + " ) as rowIndex, * from RoleInfo " + whereStr + ") as newTab where rowIndex between " + startRowIndex + " and " + endRowIndex);
string jsonStr = JSON.Encode(dt);
int total = Convert.ToInt32(DBHelper.ExecuteScalar("select count(*) from RoleInfo"));
context.Response.Write("{total:" + total + ",data:" + jsonStr + "}");
}
//加载用户权限
private void LoadRight(HttpContext context)
{
//判断是否保存了用户名
if (context.Session["loginName"] == null)
context.Response.Redirect("../login.htm");
//获取登录名
string loginName = context.Session["loginName"].ToString();
DataTable dt = DBHelper.GetTables("select * from View_login where LoginName='" + loginName + "'");
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt.Rows)
{
//.Append("\",icon:\"").Append("icon-add")
sb.Append(",{id:\"").Append(row["RightID"]).Append("\",text:\"").Append(row["RightName"]).Append("\",pid:\"").Append(row["ParentID"]).Append("\",url:\"").Append(row["URL"]).Append("\"}");
}
string jasonStr = sb.ToString();
if (jasonStr != "")
jasonStr = jasonStr.Substring(1);
jasonStr = "[" + jasonStr + "]";
context.Response.Write(jasonStr);
}
//检查用户名
private void CheckUserName(HttpContext context)
{
string uid = context.Request["uid"];
int rows = (int)DBHelper.ExecuteScalar("select count(*) from UserInfo where loginName='" + uid + "'");
if (rows <= 0)
context.Response.Write("no");
else
context.Response.Write("yes");
}
//登录信息
private void Login(HttpContext context)
{
string uid=context.Request.Form["uid"];
string pwd=context.Request.Form["pwd"];
int count=(int) DBHelper.ExecuteScalar("select count(*) from UserInfo where loginName='"+uid+"'and loginPwd='"+pwd+"'");
if (count > 0)
{
//使用session保存用户名
context.Session["loginName"] = uid;
context.Response.Write("yes");
}
else {
context.Response.Write("no");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}