国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net開發微信公眾平臺之驗證消息的真實性

asp.net開發微信公眾平臺之驗證消息的真實性

2019-12-16 13:14hebedich ASP.NET教程

這篇文章主要介紹了asp.net開發微信公眾平臺之驗證消息的真實性的相關資料,需要的朋友可以參考下

驗證消息的真實性

在MVC Controller所在項目中添加過濾器,在過濾器中重寫

public override void OnActionExecuting(ActionExecutingContext filterContext)方法

新建數據模型

asp.net開發微信公眾平臺之驗證消息的真實性

注:服務器接收消息時,不再是signature而是msg_signature

微信服務器推送消息到服務器的HTTP請求報文示例

POST /cgi-bin/wxpush? msg_signature=477715d11cdb4164915debcba66cb864d751f3e6×tamp=1409659813&nonce=1372623149 HTTP/1.1

Host: qy.weixin.qq.com

方法重寫,實現對消息的驗證

調用微信接入時驗證的方法,不過參數需要小改動一下,采用新建的數據模型

asp.net開發微信公眾平臺之驗證消息的真實性

asp.net開發微信公眾平臺之驗證消息的真實性

在Action方法或在Controller上添加過濾器屬性

asp.net開發微信公眾平臺之驗證消息的真實性

代碼示例

Model

?
1
2
3
4
5
6
7
8
9
10
/// <summary>
  /// 微信推送消息模型
  /// </summary>
  public class WeChatMsgRequestModel
  {
    public string timestamp { get; set; }
    public string nonce { get; set; }
 
    public string msg_signature { get; set; }
  }

Filter

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class WeChatRequestValidAttribute : ActionFilterAttribute
  {
    private const string Token = "StupidMe";
 
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
      //參數適配
      Model.FormatModel.WeChatMsgRequestModel model = new Model.FormatModel.WeChatMsgRequestModel() { nonce= filterContext.HttpContext.Request.QueryString["nonce"],msg_signature= filterContext.HttpContext.Request.QueryString["msg_signature"],timestamp= filterContext.HttpContext.Request.QueryString["timestamp"] };
      //驗證
      if (CheckSignature(model))
      {
        base.OnActionExecuting(filterContext);
      }     
    }
 
    private bool CheckSignature(Model.FormatModel.WeChatMsgRequestModel model)
    {
      string signature, timestamp, nonce, tempStr;
      //獲取請求來的參數
      signature = model.msg_signature;
      timestamp = model.timestamp;
      nonce = model.nonce;
      //創建數組,將 Token, timestamp, nonce 三個參數加入數組
      string[] array = { Token, timestamp, nonce };
      //進行排序
      Array.Sort(array);
      //拼接為一個字符串
      tempStr = String.Join("", array);
      //對字符串進行 SHA1加密
      tempStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tempStr, "SHA1").ToLower();
      //判斷signature 是否正確
      if (tempStr.Equals(signature))
      {
        return true;
      }
      else
      {
        return false;
      }
    }
  }

Controller Code

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// <summary>
    /// 日志助手
    /// </summary>
    private static Common.LogHelper logger = new Common.LogHelper(typeof(HomeController));
 
    [Filters.WeChatRequestValid]
    public void Valid(Model.FormatModel.WeChatMsgRequestModel model)
    {
      if (ModelState.IsValid)
      {
        try
        {
          //判斷是否是POST請求
          if (HttpContext.Request.HttpMethod.ToUpper() == "POST")
          {
            //從請求的數據流中獲取請求信息
            using (Stream stream = HttpContext.Request.InputStream)
            {
              byte[] postBytes = new byte[stream.Length];
              stream.Read(postBytes, 0, (int)stream.Length);
              string postString = System.Text.Encoding.UTF8.GetString(postBytes);
              Handle(postString,model);
            }
          }
        }
        catch (Exception ex)
        {
          logger.Error("發生異常,異常信息:" + ex.Message + ex.StackTrace);
        }
      }
    }     

以上所述就是本文的全部內容 了,希望大家能夠喜歡。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲免费视频在线 | 日韩三级电影在线免费观看 | 欧美精品1区 | 成人av片在线观看 | 日韩性精品 | 精品国产乱码久久久久久1区2区 | 亚洲91精品 | 精品视频免费观看 | 成人精品国产 | 欧美精品一区二区三区蜜桃视频 | 91久久久久久 | 伊人五月 | 日韩精品在线视频 | 久在线视频 | 精品国产一区二区三区高潮视 | 亚洲欧美日韩一区 | 夜夜爽av福利精品导航 | 国产精品亲子伦av一区二区三区 | www.免费av| 久久国产精品久久久久久电车 | 日韩精品一区二区三区在线 | 国产精品久久久久久久久久久免费看 | 国产成人精品免高潮在线观看 | 成人午夜网 | 成人影音 | 伦理午夜电影免费观看 | 国产视频在线播放 | 久草成人 | 久久久久久久久国产成人免费 | 精品国产髙清在线看国产毛片 | 国产精品久久久久久久 | 日韩在线精品视频 | 日韩国产中文字幕 | 精品在线一区二区 | 国产在线国产 | 免费看的毛片 | 91在线观看高清视频 | 日韩成人在线影院 | 成人亚洲视频 | 一级在线观看 | 亚洲成人午夜电影 |