微信公眾平臺開發(fā)之認(rèn)證"成為開發(fā)者".Net代碼解析
更新時間:2016年06月24日 10:02:48 作者:hechurui
這篇文章主要為大家詳細(xì)解析了微信公眾平臺開發(fā)之認(rèn)證"成為開發(fā)者".Net代碼,感興趣的小伙伴們可以參考一下
.Net 實現(xiàn)微信公共服務(wù)平臺開發(fā)的認(rèn)證,認(rèn)證成為開發(fā)者,具體內(nèi)容如下
這些代碼也就開始認(rèn)證的時候用一次,以后就不用了:
const string Token = "XXXXX";//你的token protected void Page_Load(object sender, EventArgs e) { string postStr = ""; if (Request.HttpMethod.ToLower() == "post") { System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream; byte[] b = new byte[s.Length]; s.Read(b, 0, (int)s.Length); postStr = System.Text.Encoding.UTF8.GetString(b); if (!string.IsNullOrEmpty(postStr)) { //ResponseMsg(postStr); Response.Write(ResponseMsg(postStr)); Response.End(); } //WriteLog("postStr:" + postStr); } else { Valid(); } } /// <summary> /// 驗證微信簽名 /// </summary> /// * 將token、timestamp、nonce三個參數(shù)進行字典序排序 /// * 將三個參數(shù)字符串拼接成一個字符串進行sha1加密 /// * 開發(fā)者獲得加密后的字符串可與signature對比,標(biāo)識該請求來源于微信。 /// <returns></returns> private bool CheckSignature() { string signature = Request.QueryString["signature"].ToString(); string timestamp = Request.QueryString["timestamp"].ToString(); string nonce = Request.QueryString["nonce"].ToString(); string[] ArrTmp = { Token, timestamp, nonce }; Array.Sort(ArrTmp); //字典排序 string tmpStr = string.Join("", ArrTmp); tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); tmpStr = tmpStr.ToLower(); if (tmpStr == signature) { return true; } else { return false; } } .private void Valid() { string echoStr = Request.QueryString["echoStr"].ToString(); if (CheckSignature()) { if (!string.IsNullOrEmpty(echoStr)) { Response.Write(echoStr); Response.End(); } } } /// <summary> /// 寫日志(用于跟蹤) /// </summary> private void WriteLog(string strMemo) { string filename = Server.MapPath("/logs/log.txt"); if (!Directory.Exists(Server.MapPath("http://logs//"))) Directory.CreateDirectory("http://logs//"); StreamWriter sr = null; try { if (!File.Exists(filename)) { sr = File.CreateText(filename); } else { sr = File.AppendText(filename); } sr.WriteLine(strMemo); } catch { } finally { if (sr != null) sr.Close(); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
win7系統(tǒng)下 vs2010 調(diào)式就關(guān)閉要重啟處理方法
最近經(jīng)常出現(xiàn)只要一使用vs2010進行調(diào)試,就提示關(guān)閉并要重啟,好煩,度娘了半天,總結(jié)下來解決方法,親測可用哦。2014-08-08asp.net根據(jù)計算機MAC地址限定每臺機子只能領(lǐng)取一次賬號
這里只做簡單演示過程,請根據(jù)您的實際情況作適當(dāng)修改!另外我的博客只做自己參考查詢方便用,請各位大神不要沒事噴我,知道您的技術(shù)高,我是新手正在努力學(xué)習(xí)當(dāng)中,謝謝2012-06-06ASP.NET實現(xiàn)基于Forms認(rèn)證的WebService應(yīng)用實例
這篇文章主要介紹了ASP.NET實現(xiàn)基于Forms認(rèn)證的WebService應(yīng)用,實例分析了使用Forms進行WebService身份認(rèn)證的相關(guān)技巧與實現(xiàn)方法,需要的朋友可以參考下2015-05-05