鄂尔多斯-招源科技

ValidateController.cs 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using CallCenterApi.Common;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text.RegularExpressions;
  6. using System.Web;
  7. using System.Web.Http;
  8. using System.Web.Mvc;
  9. namespace CallCenterApi.Interface.Controllers.BaseController
  10. {
  11. public class ValidateController : ActionFilterAttribute
  12. {
  13. private string _DataType = "";
  14. protected override void OnActionExecuting(ActionExecutingContext filterContext)
  15. {
  16. CommonHelper.InsertLog(System.DateTime.Now + " : " + Request.QueryString.ToString());
  17. if (string.IsNullOrEmpty(Request["Keys"]))
  18. {
  19. filterContext.Result = new EmptyResult();
  20. filterContext.HttpContext.Response.Write("Error:Request Invalid");
  21. filterContext.HttpContext.Response.End();
  22. }
  23. #region 解码
  24. var keyDomain = "api";
  25. var Keys = "";
  26. //keyDomain = Regex.Match(Request.UrlReferrer.Host + "", @"(http://)?((\w+\.)+\w+)").Value.ToLower().Replace("http://", "");
  27. //keyDomain = "23423423";
  28. //keyDomain = "232";
  29. //Keys = new SysConfigHelper.DemoKeys(keyDomain).Keys;
  30. Keys = "LYYU80DV3465QSF1";
  31. if (keyDomain == "" || Keys == "")
  32. {
  33. filterContext.Result = new EmptyResult();
  34. filterContext.HttpContext.Response.Write("Error:Key Invalid");
  35. filterContext.HttpContext.Response.End();
  36. }
  37. var keyStr = Regex.Split(CommonHelper.DecryptAES(Request["Keys"], Keys), @"\|URL\|", RegexOptions.IgnoreCase);
  38. if (keyStr.Length < 2)
  39. {
  40. filterContext.Result = new EmptyResult();
  41. filterContext.HttpContext.Response.Write("Error:Decoding Fail");
  42. filterContext.HttpContext.Response.End();
  43. }
  44. if (keyStr[0] != CommonHelper.EncryptAES(Request["view"], Keys))
  45. {
  46. filterContext.Result = new EmptyResult();
  47. filterContext.HttpContext.Response.Write("Error:Signature Failed");
  48. filterContext.HttpContext.Response.End();
  49. }
  50. //var date = keyStr[1];
  51. //if (!ValidateString.IsDateTime(date))
  52. //{
  53. // filterContext.Result = new EmptyResult();
  54. //filterContext.HttpContext.Response.Write("Error:Encryption Failed");
  55. // filterContext.HttpContext.Response.End();
  56. //}
  57. //if (DateString.DateDiff("S", Convert.ToDateTime(date), DateTime.Now) > new SysConfigHelper.SysConfigPara().ApiTimeOut)
  58. //{
  59. // filterContext.Result = new EmptyResult();
  60. // filterContext.HttpContext.Response.Write("Error:Request Timedout");
  61. // filterContext.HttpContext.Response.End();
  62. //}
  63. #endregion
  64. var datatype = Request["datatype"] + "";
  65. _DataType = datatype.ToLower() == "" ? "json" : datatype;
  66. if (datatype.ToLower() == "xml")
  67. {
  68. Response.ContentType = "text/xml";
  69. }
  70. base.OnActionExecuting(filterContext);
  71. }
  72. /// <summary>
  73. /// 1:json;0:xml
  74. /// </summary>
  75. public int DataType
  76. {
  77. get { return _DataType + "" == "json" ? 1 : 0; }
  78. }
  79. }
  80. }