const
string Token =
"XXXXX"
;
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))
{
Response.Write(ResponseMsg(postStr));
Response.
End
();
}
}
else
{
Valid();
}
}
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
();
}
}
}
private
void WriteLog(string strMemo)
{
string filename = Server.MapPath(
"/logs/log.txt"
);
if
(!Directory.Exists(Server.MapPath(
"//logs//"
)))
Directory.CreateDirectory(
"//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();
}
}