我的測(cè)試網(wǎng)址為:http://abc.xxxxxxxxxx.com 在地址欄也是這樣顯示的。但是實(shí)際上我后臺(tái)用了 Request.Url.ToString().Split('#')[0]; 結(jié)果是:http://abc.xxxxxxxxxx.com/default.aspx我根據(jù)官方的說(shuō)法,試著將URL 寫(xiě)死一次試試:http://abc.xxxxxxxxxx.com/結(jié)果通過(guò)了。我這下才真正的明白,參與生成簽名的URL的真面目了,是獲取地址欄的URL。那為什么要?jiǎng)討B(tài)獲取嗎?原因是當(dāng)你把要分享的頁(yè)面分享出去的時(shí)候,微信會(huì)在地址欄上加上一些參數(shù)。如果寫(xiě)死,當(dāng)朋友點(diǎn)擊你分享的鏈接時(shí)也想分享的話,這時(shí)又會(huì)出現(xiàn)簽名錯(cuò)誤了。請(qǐng)注意,這里所說(shuō)的加上了參數(shù),發(fā)生的時(shí)間點(diǎn)。
總結(jié):
在.net 中沒(méi)有直接獲取地址欄信息的方法。
Request.ApplicationPath: /testweb
Request.CurrentExecutionFilePath: /testweb/default.aspx
Request.FilePath: /testweb/default.aspx
Request.Path: /testweb/default.aspx
Request.RawUrl: /testweb/default.aspx
Request.Url.AbsolutePath: /testweb/default.aspx
Request.Url.AbsoluteUrl: http://www.test.com/testweb/default.aspx
Request.Url.Host: www.test.com
Request.Url.LocalPath: /testweb/default.aspx
如果你的網(wǎng)址是: http://abc.xxxxxxxxxx.com/
我的處理方法是這樣的,有點(diǎn)笨,但好用:
url = Request.Url.ToString().Split('#')[0];
if (url == "http://abc.xxxxxxxxxx.com/default.aspx")
{
url = "http://abc.xxxxxxxxxx.com/";
}
else
{
url = url.Replace("default.aspx", "");
}