讀者發問
是的,書還沒賣出半本就已經開始做讀者服務。寫書真的不是拿來賺錢的。@_@
參加twMVC#7時,有社群朋友問說,ASP.NET Web API是否能運作在HTTPS之下?老實說,我還真沒想過也沒試過,不過這在商業上是很實際的需求,與前端之間重要、機密的資料,最簡易與安全的方式就是使用HTTPS。那麼,ASP.NET Web API是否能在HTTPS協定下運作呢?
讓我們看下去。
IIS Express for HTTPS環境架設
進入HTTPS測試之前,當然要先有一個HTTPS的測試環境。在「ASP.NET MVC 4網站開發美學」裡我花了很長的篇幅教讀者如何設定與使用IIS Express,也說明了使用了IIS Express指令模式的好處,如果你要學習ASP.NET Web API不會使用IIS Express,那真的是吃虧。
- 以下操作與設定環境為Windows 8 and Visual Studio 2012。
- 以下使用ASP.NET MVC 4預設Web API專案測試。
- IIS Express相關細節請參考《ASP.NET MVC 4網站開發美學》第七章。
設定IIS Express支援HTTPS有兩種方式:
- 修改【C:\Users\{UserName}\Documents\IISExpress\config\applicationhost.config】裡ASP.NET Web API專案<site>裡的<bindings>設定:
- 原始:
<bindings> <binding protocol="http" bindingInformation="*:4958:localhost" /> </bindings>
- 修改:
<bindings> <binding protocol="http" bindingInformation="*:1370:localhost" /> <binding protocol="https" bindingInformation="*:44300:localhost" /> </bindings>
- 原始:
- 透過Visual Studio屬性設定
- 點選【Web API專案】,移至【屬性】視窗;
- 點選【啟用SSL】。
注意:在IIS Express使用HTTPS有些限制,請參考書中說明。
修改applicationhost.config設定檔是比較靈活的方法,例如,我們可以指定任何我們想要的Port Number,透過Visual Studio屬性則是動態指定Port Number。
建置,讓我們以指令模式啟用IIS Express(這些訊息是一般GUI模式下看不到的,怎麼用,請好好看這本「ASP.NET MVC 4網站開發美學」,謝謝。再次證明,把IIS Express指令模式學好是非常有用的。)
測試IIS Express HTTPS for ASP.NET MVC
啟用Web API裡的MVC首頁,修改兩個地方:
- 將http改為https
- 將Port Number改為HTTPS的Port Number
憑證錯誤畫面是正常的,按【續繼】:
目前為止,我們已經讓ASP.NET MVC專案正常運作於HTTPS之上。
測試IIS Express HTTPS for ASP.NET Web API
在「ASP.NET MVC 4網站開發美學 第七章」,瀏覽器不算的話,我有介紹兩套工具【PostMan】與【fiddler】以測試ASP.NET Web API,以下就讓我們試試。
PostMan與fiddler測試HTTPS
目前如PostMan之類的瀏覽器外掛套件無法進行HTTPS之下的ASP.NET Web API測試。
目前我主機安裝的Fiddler v4.4.2.4Beta版:
- 輸入所需的資訊URI資源資訊:
- 收到到一個憑證錯誤的通知:
- ASP.NET Web API在HTTPS之下,回應狀態碼200正常:
- 用戶端透過HTTPS接收JSON回應也是正常:
結論就是:No Problem,ASP.NET Web API完全能運作在HTTPS之下沒問題。
另外,PostMan之類程式無法測試是因為憑證錯誤的問題,它們無法處理憑證錯誤。其實,直接用瀏覽器就可以看到由HTTPS回傳的JSON。XD
KKBurce大大真是感謝您幫我實驗了一下!!!真是期待您有參與的新書啊!!
回覆刪除你們開心,我就高興 ^^
刪除更利害的是,書都還沒出,讀者服務就要勘誤了..
回覆刪除Line 1 書還沒買出半本 => 賣
話說,出了我一定會買一本。
我打字錯誤率很高XD
刪除KKBurce大大, 真是好書, 但小弟資質不足, 讀得好吃力呢
回覆刪除第7章(這章應是您寫的) p7-58, 7.5.4 中的 表7.6, 應是表7.5 的誤植吧?
整本書有無戡誤表呢?
一、
刪除http://books.gotop.com.tw/v_ACL036500
這裡可以下載到最新修訂勘誤表及新增補充資料。(同等二刷)
二、
吃力這件事…有句話,吃苦當做吃補 :P,加油。