完整教程鏈接:ASP.Net: EshineASPNet-基於ASP.Net敏捷開發開源框架
這裏的公衆號開發用的是另外一個第三方框架Senparc.Weixin,有詳細的教程,基本上就是配上自己的參數跟微信公衆號後臺匹配就能用。筆者拿服務號爲例,可以實現自動授權,這裏的方法是,點擊公衆號底部按鈕做跳轉的時候不是直接跳到目的地網頁,而是先去到一箇中轉網頁這裏是OAuth2page.aspx,授權之後再去目的地網頁,這樣就可以檢查是否從微信過來,如果從普通瀏覽器打開可以顯示“請從微信端訪問”這樣的文字。
protected void Page_Load(object sender, EventArgs e)
{
string str = base.Request.QueryString["q"];
string url = "";
switch (str)
{
case "1"://功能1
url = OAuthApi.GetAuthorizeUrl(Weixin.Appid,
"http://weixin.eshinelee.com/webpage/page1.aspx", "something", OAuthScope.snsapi_base, "code");
break;
case "2"://功能2
url = OAuthApi.GetAuthorizeUrl(Weixin.Appid,
"http://weixin.eshinelee.com/webpage/page2.aspx", "cus", OAuthScope.snsapi_base, "code");
break;
}
base.Response.Redirect(url);
}
以上是OAuth2page的代碼,授權之後直接跳轉到目的網頁。
public void CheckUser(System.Web.HttpRequest Request)
{
//判斷用戶是否登陸
if (Session["openid"] == null || Session["openid"].ToString()=="")
{
if (!string.IsNullOrEmpty(Request.QueryString["code"]))
{
string openid = publicclass.getopenidbyOAuth2(Request.QueryString["code"], Request.QueryString["state"]);
if (openid != "" && !openid.Contains("錯誤"))
{
Session["openid"] = openid;
}
}
else
{
Response.Redirect("~/webpage/lost.aspx", true);
}
}
}
這裏就可以檢查是否從微信端過來,還是從普通網頁打開了。
這裏用到了第三方框架,還用到了Bootstrap, Kindeditor,本框架也是框架。用框架的好處就是相當於站在了巨人的肩膀上,讓自己的一小步可以實現一大步,好處自然是多多的。當然框架不斷會更新,也會不斷有更新的框架出來,活到老學到老。自己也可以發掘第三方框架的易用功能,比如筆者就使用了Kindeditor裏面的文件上傳功能來做圖片上傳,自己基本不用寫代碼了,而且都是JQuery體驗也還不錯。
第三方框架的弊處是開源的原因讓攻擊的可能性增加,黑客可以研究代碼更容易找到軟件的漏洞,比研究操作系統簡單多了。
本教程代碼參考
EshineASPNet\Senparc.Weixin.MP.Sample.WebForms\OAuth2page.aspx