微信公眾平臺開發(fā)之認證"成為開發(fā)者".Net代碼解析
.Net 實現(xiàn)微信公共服務(wù)平臺開發(fā)的認證,認證成為開發(fā)者,具體內(nèi)容如下
這些代碼也就開始認證的時候用一次,以后就不用了:
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)文章
asp.net MVC 根據(jù)菜單樹類別不同動態(tài)加載視圖的實現(xiàn)步驟
這篇文章主要介紹了asp.net MVC 根據(jù)菜單樹類別不同動態(tài)加載視圖的實現(xiàn)步驟,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-08-08
為自己的ASP網(wǎng)站系統(tǒng)構(gòu)建一套標(biāo)記語言
為自己的ASP網(wǎng)站系統(tǒng)構(gòu)建一套標(biāo)記語言...2006-09-09
JQuery實現(xiàn)Repeater無刷新批量刪除(附后臺asp.net源碼)
JQuery實現(xiàn)Repeater無刷新批量刪除(附后臺asp.net源碼) ,學(xué)習(xí)jquery的朋友可以參考下。2011-09-09
在Asp.net下實現(xiàn)變長連接的web即時應(yīng)用的實現(xiàn)范例及ReverseAjax的演示介紹
根據(jù)公司近期的一個培訓(xùn)整理的資料,附件包括一個完整的使用變長連接的web即時聊天室的范例和針對ReverseAjax的ppt培訓(xùn)文稿,其中ppt中包含了對范例程序的完整講解2011-12-12
ASP.NET中實現(xiàn)把form表單元素轉(zhuǎn)為實體對象或集合
這篇文章主要介紹了ASP.NET中實現(xiàn)把form表單元素轉(zhuǎn)為實體對象或集合,本文又是一個對重復(fù)數(shù)據(jù)處理的一個封裝,非常實用的開發(fā)技巧,需要的朋友可以參考下2015-06-06
.NET?Framework?的項目如何使用?FTP?下載文件
本文專門針對面向?.NET?Framework?的項目,?對于面向?.NET?6?及更高版本的項目,不再支持?FTP,此示例演示如何從?FTP?服務(wù)器下載文件,感興趣的朋友跟隨小編一起看看吧2024-01-01
asp.net core配合vue實現(xiàn)后端驗證碼邏輯
網(wǎng)上的前端驗證碼邏輯總感覺不安全,驗證碼建議還是使用后端配合驗證。本文主要介紹了asp.net core配合vue實現(xiàn)后端驗證碼邏輯,感興趣的可以了解一下2021-06-06

