县级监管平台

AuthorizeAttribute.cs 3.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. 
  2. using CallCenterApi.Common;
  3. using CallCenterApi.Interface.Models.Common;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Web;
  8. using System.Web.Mvc;
  9. using System.Web.Routing;
  10. namespace CallCenterApi.Interface
  11. {
  12. public class AuthorityAttribute : AuthorizeAttribute
  13. {
  14. private BLL.T_Sys_RoleFunction roleFunctionBLL = new BLL.T_Sys_RoleFunction();
  15. /// <summary>
  16. /// 权限验证
  17. /// </summary>
  18. /// <param name="filterContext"></param>
  19. public override void OnAuthorization(AuthorizationContext filterContext)
  20. {
  21. bool isAuth = false;
  22. if (filterContext.RequestContext.HttpContext.Request.IsAuthenticated)
  23. {
  24. var actionDescriptor = filterContext.ActionDescriptor;
  25. var controllerDescriptor = actionDescriptor.ControllerDescriptor;
  26. var controller = controllerDescriptor.ControllerName;
  27. var action = actionDescriptor.ActionName;
  28. var token = filterContext.HttpContext.Request["token"];
  29. //var userData = CacheHelper.Get<Dictionary<string, string>>(token);
  30. var userDatastr = RedisHelper.StringGet(token);
  31. if (userDatastr != null)
  32. {
  33. Dictionary<string, string> userData = new Dictionary<string, string>();
  34. userData = userDatastr.ToString().ToObject<Dictionary<string, string>>();
  35. var roleId = Utils.StrToInt(userData["F_RoleID"], 0);
  36. //var roleId = Utils.StrToInt(userData["F_RoleID"], 0);
  37. //var role = new BLL.T_Sys_RoleInfo().GetModel(roleId);
  38. //if (role != null)
  39. //{
  40. // isAuth = true;
  41. // //var roleFunctionList = roleFunctionBLL.GetModelList(" F_RoleId=" + role.F_RoleId);
  42. // ////var str = string.Join(",", roleFunctionList.Select(x => x.F_FunctionId).ToArray());
  43. // //var moduleFunction = new BLL.T_Sys_Function().GetModel(roleId);
  44. // //if (moduleFunction != null)
  45. // //{
  46. // // var single = roleFunctionList.SingleOrDefault(x => x.F_FunctionId == moduleFunction.F_FunctionId);
  47. // // if (single != null)
  48. // // {
  49. // // isAuth = true;
  50. // // }
  51. // //}
  52. //}
  53. }
  54. }
  55. else
  56. {
  57. filterContext.HttpContext.Response.StatusCode = 200;
  58. filterContext.Result = new ContentResult { Content = new AjaxResult { state = ResultTypes.notoken.ToString(), message = "token无效或过期,请重新登录。"}.ToJson() };
  59. return;
  60. }
  61. //if (!isAuth)
  62. //{
  63. // filterContext.HttpContext.Response.StatusCode = 200;
  64. // filterContext.Result = new ContentResult { Content = new AjaxResult { state = ResultTypes.unauthorized.ToString(), message = "对不起,您无权访问!" }.ToJson() };
  65. // WriteLog(filterContext);
  66. //}
  67. //else {
  68. base.OnAuthorization(filterContext);
  69. //}
  70. }
  71. }
  72. }