WebApi

Articles

使用Google API產生QR code

QR-Code目前已相當成熟,開發系統可以多加應用。 主要就是客戶電腦與手機之間的資料聯繫,例如用PC上Web後,出現QR-Code認證連結,要用戶用手機掃碼做認證(存cookie或APP綁定),然後就可以輕鬆的綁定手機。
技術
0
min.

不能將WebApi寫在App_Code下

這是個大慘案,雖然在WebForm可以這樣做,但是在以MVC架構為主的情況下,放在這樣的地方會造成controller重複,詳細原因不明,但是把webapi放去該去的Controller資料夾下,一切都正常了。..................... 無言...............
技術
0
minutes

ASP.NET MVC是透過網址的路由來定義拜訪

網址路由(Routing),全部頁面被  /App_Start/RouteConfig.cs 導向(當然可以自己定義路由), MVC的Controllers與WebApi分別是用以下兩個檔案控制: /App_Start/RouteConfig.cs /App_Start/WebApiConfig.cs 可能會有困惑,以上兩者的差異為{action},那WebApi到底要不要有Aciton比較好呢?其實JSON原理是用不同的傳輸協定去Call不同的方法,例如Get、Post、Put,沒有{action}是符合設計原理的,但是有時候這樣又不太好用,那到底要不要改掉WebApiConfig.cs呢? config.Routes.MapHttpRoute( ...
技術
0
minutes

JWT學習筆記Part2(驗證Token)-完結篇

前篇請參考這裡,因為使用Jose JWT,處理起來相對簡單很多,以下是驗證資料是否被竄改過,只要有被改過,無論是簽章,或是header、payload,改過都會驗證失效的。 public Dictionary<string, string> VerifyToken(string token) { RSAParameters rsaParams; var verifyPass = false; var exp =...
技術
0
minutes

JSON真好用-產生與接收的簡單範例

使用JSON比起傳統的Web Service的XML實在好用太多,不用搞WSDL,還要處理Parser的問題,真的很麻煩。 最終WebApi一定會變成網頁傳遞資料的主流,NET MVC架構裡的ApiController實在很犀利。以下範例可以在ApiController直接產生json檔案輸出,讓對方讀取,直接用Dictionary就變成JSON資料,這個讚。 public Dictionary<string, string> GetLoginToken() { var result = new Dictionary<string, string>(); try { result.Add("token", DoSomething()); result.Add("ErrMsg", ""); } catch (Exception e) { result.Add("token", ""); result.Add("ErrMsg", e.Message); } return result; } 既然 Dictionary 可以轉JSON,那麼JSON可以轉為 Dictionary 嗎?當然可以喔,如下: // 設定GET網址與表頭 System.Net.HttpWebRequest request...
技術
0
minutes

撰寫ApiController取得POST的值始終為NULL

開發ApiController的時候用POST方法來傳值,似乎Api怎麼都抓不到POST過來的值,但實際真的有傳出去,這是怎麼一回事呢,先來看看ApiController自動產生的範例吧。 // POST api/<controller> public void Post(string value) ...
技術
0
minutes

JWT學習筆記Part1(產製Token)

跨伺服器交換資料,用JWT就對了,安全可靠。 認識JWT,請參考以下文章: 以 JSON Web Token 替代傳統 Token 有了基本的認識後,HS開頭的簽章方式是用secret(密語),把secret給其他伺服器就能驗證簽章,本案例使用asp.net,請參考以下Code(要用NuGet下載System.JdentityModel.Tokens.Jwt)。 // header var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("db3OIsj+BXE9NZDy0t8W3TcNekrF+2d/1sFnWG4HnV8TZY30iTOdtVWJG8abWvB1GlOgJuQZdcF2Luqm/hccMw==")); var signingCredentials...
技術
1
minute