62,025
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 判断用户角色是否有权限访问页面
/// </summary>
public class CheckRole : ActionFilterAttribute
{
public string[] Roles { get; set; }
public bool IsCheck { get; set; }
private YunChenDistributionContext db = new YunChenDistributionContext();
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!IsCheck)
return;
string openid = HttpContext.Current.Session["WXOpenId"].ToString();
bool isRole = false;
foreach(string role in Roles)
{
switch (role)
{
case "shoper":
var shop = db.Shops.FirstOrDefault(m => m.WXOpenId == openid);
if (shop != null)
isRole = true;
break;
case "customer":
var customer = db.Customers.FirstOrDefault(m => m.WXOpenId == openid);
if (customer != null)
isRole = true;
break;
case "distributor":
var distributor = db.Distributors.FirstOrDefault(m => m.WXOpenId == openid);
if (distributor != null)
isRole = true;
break;
case "staff":
var staff = db.Staffs.FirstOrDefault(m => m.WXOpenId == openid);
if (staff != null)
isRole = true;
break;
}
}
if(isRole)
{
//如果角色没有注册,则跳转到首页
HttpContext.Current.Session["Alert"] = "您无权访问此页面!";
filterContext.Result = new RedirectResult("/");
return;
}
base.OnActionExecuting(filterContext);
}
}