顯示具有 CORS 標籤的文章。 顯示所有文章
顯示具有 CORS 標籤的文章。 顯示所有文章

Visual Studio 2013 Preview - ASP.NET, MVC 5, Web API 2新功能搶先看

來自TechEd North America 2013的第一手消息

以下資訊均來自 Channel9 目前於北美 TechEd 活動影片,主要記錄 DEV-B314 這一場 Microsoft ASP.NET, Web, and Cloud Tools Preview 的筆記。

Visual Studio 2013 Preview改良部分

以下將 Visual Studio 2013 Preview 相關內容整理如下:

單一對話視窗

Visual Studio 2013 Preview簡化一開始的新增專案的對話視窗,只區兩大類,進入後也只區分為Empty、Web Forms、MVC、Web API、SPA、Facebook、Mobile。

Web Application dialog

測試伺服器

測試伺服器不在局限於IIS Express,也可以設置為外部伺服器。

ASP.NET 測試伺服器設置

Browser Link

當我們修改頁面文字、Layout、CSS等,可快速重整所有已連接至Visual Studio測試頁面的瀏覽器。

快速重整已連接至Visual Studio測試頁面的瀏覽器

認證組態

在新增專案時即可設置認證組態,目前可結合其他外部Microsoft Live Id、Facebook、Google+、twitter等。

認證組態1

認證組態2

ASP.NET Web API CORS預覽功能完整剖析

Cross-origin resource sharing(CORS)

Cross-origin resource sharing (跨來源資源分享,以下稱CORS)是W3C 提案的技術標準,定義伺服器與用瀏覽器在跨來源(即cross domain,跨網域)呼叫時的互動方式。CORS標準允許網頁發出跨網域的AJAX請求,讓實作了同源策略(same-origin)的瀏覽器在安全條件下去呼叫進行有限制的跨網域AJAX請求。

CORS透過設定HTTP Header(標頭)設置那些網域的網站可以跨網域存取,目前W3C定義九個Response Header(回應標頭)可以設置:

Response Header說明
Access-Control-Allow-Origin 指示是否基於共享資源透過回傳來源請求標頭、“*”或“null”在回應裡。
Access-Control-Allow-Credentials 指示當省略憑證標誌(Credentials flag)未設置時,是否公開請求的回應。當檢查請求(preflight request)的回應一部分,它表明實際的請求可以包含用戶端憑證。
Access-Control-Expose-Headers 指示那些標頭是安全公開在CORS API規範的API。
Access-Control-Max-Age 指示檢查請求可以快取多久時間在快取結果裡。
Access-Control-Allow-Methods 指示實際請求期間,可以使用那些方法做為請求回應的一部分。
Access-Control-Allow-Headers 指示實際請求期間,可以使用那些標頭名稱做為請求回應的一部分。
Origin 指示跨來源請求或檢查請求來自於。
Access-Control-Request-Method 指示那種方法在實際請求中做為檢查請求的一部分。
Access-Control-Request-Headers 指示那種標頭在實際請求中做為檢查請求的一部分。

例如,我們可以設置以下CORS標頭:

 Access-Control-Allow-Origin: http://kkbruce.net
 Access-Control-Allow-Methods: PUT, DELETE
 

這表示,除了網站本身以外,還允許kkbruce.net網域進行跨網域的AJAX請求且只允許PUT和DELETE方法的請求。允許的網域可以設定多組,也能設定為“*”代表不設限。