博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信开发者验证
阅读量:4957 次
发布时间:2019-06-12

本文共 2816 字,大约阅读时间需要 9 分钟。

上代码

1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Web; 6 using System.Web.UI; 7 using System.Web.UI.WebControls; 8 using System.Web.Security; 9 10 public partial class wx_Default : System.Web.UI.Page11 {12     protected void Page_Load(object sender, EventArgs e)13     {14         HttpContext context = HttpContext.Current;15         string _signature = Request.QueryString["signature"];16         string _timestamp = Request.QueryString["timestamp"];17         string _nonce = Request.QueryString["nonce"];18         string _echostr = Request.QueryString["echostr"];19         string token = "linkideas";20 21         string[] stringArray = { token, _timestamp, _nonce };22         Array.Sort(stringArray);23         string mergeString = string.Concat(stringArray);24 25         mergeString = FormsAuthentication.HashPasswordForStoringInConfigFile(mergeString, "SHA1").ToLower();26 27         if (_signature == mergeString)28         {29             Response.Clear();30             Response.ContentType = "text/plain";31             Response.Write(_echostr);32             Response.End();33         }34     }35 }

下边重写,易于理解,作用同上

1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Web; 6 using System.Web.UI; 7 using System.Web.UI.WebControls; 8 using System.Web.Security; 9 10 public partial class wx_Default : System.Web.UI.Page11 {12     protected void Page_Load(object sender, EventArgs e)13     {14         valid();15     }16 17     HttpContext context = HttpContext.Current;18     public void valid()19     {20         var echostr = context.Request["echoStr"].ToString();21         if (checkSignature() && !string.IsNullOrEmpty(echostr))22         {23             Response.Clear();24             Response.ContentType = "text/plain";25             Response.Write(echostr);26             Response.End();27         }28     }29     public bool checkSignature()30     {31         var signature = context.Request["signature"].ToString();32         var timestamp = context.Request["timestamp"].ToString();33         var nonce = context.Request["nonce"].ToString();34         var token = "linkideas";35 36         string[] ArrTmp = { token, timestamp, nonce };37         Array.Sort(ArrTmp);//字典排序38         string mergeString = string.Concat(ArrTmp);//作用相同 string mergeString = string.Join("", ArrTmp);39 40         mergeString = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(mergeString, "SHA1");41         mergeString = mergeString.ToLower();42         if (mergeString == signature)43         {44             return true;45         }46         else47         {48             return false;49         }50     }51 }

 

转载于:https://www.cnblogs.com/duanyong/articles/3443495.html

你可能感兴趣的文章