如何設定網路功能 (HTML)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
這個主題說明網路隔離概念,以及如何設定網路功能才能完全控制 Windows 執行階段應用程式的網路存取。 網路功能可確保 Windows 執行階段應用程式具有所需網路資源的存取權,並確保提供正確預期的相關存取層級給使用者。 了解本主題可確保您的 Windows 執行階段應用程式正確連線到網路資源。 網路隔離可確保 Windows 執行階段應用程式只能在明確要求正確功能之後才可存取網路資源。
您必須知道的事
技術
Windows.Networking.BackgroundTransfer
啟用進階的下載和上傳作業。
-
使用通訊端與 WebSocket 啟用網路通訊。
-
使用 AtomPub 通訊協定啟用對 Web 資源的存取。
-
提供現代 HTTP 用戶端 API 以連線到 Web 服務。
-
管理新聞訂閱方式摘要。
-
允許利用網站用戶端連線到 Web 服務 (僅限 C#/VB)。
先決條件
- 下列資訊適用於任何連線或網路感知 Windows 執行階段應用程式,這種應用程式需要連線網路。這會影響以 JavaScript 編寫的應用程式。也會影響使用 C#、VB.NET 和 C++ 之 .NET Framework 4.5 編寫的應用程式。
網路隔離的檢查清單
使用此檢查清單以確定網路隔離是針對您的應用程式所設定。
- 決定應用程式需要的網路存取方向。這有可能是輸出的用戶端起始要求或是輸入的未經同意要求,或是這兩種網路要求類型的組合。
- 決定要與應用程式進行通訊的網路資源類型。應用程式可能需要與家用或工作場所網路上信任的資源通訊。應用程式可能需要與網際網路上的資源通訊。應用程式可能需要存取兩種類型的網路資源。
- 在應用程式資訊清單中設定最低需求的網路隔離功能。開發應用程式時,通常會使用 Microsoft Visual Studio 2013 來設定這些功能。
- 部署並執行應用程式,以使用供疑難排解的網路隔離工具來測試它。
網路隔離的詳細資訊
並非所有的應用程式都需要存取網路,不過對於那些需要存取網路的應用程式,Windows 8.1 提供不同層級的網路存取權,這些存取權可透過選取適當的功能來啟用。
網路隔離可讓您為每個應用程式定義所需網路存取權的範圍。網路存取權要求分成兩個類別:
輸出用戶端起始的要求
應用程式做為用戶端,並透過傳送初始網路要求至遠端電腦 (通常是伺服器) 來起始網路存取。用戶端應用程式會傳送一或多個要求至伺服器,而伺服器會將單一回應或多個回應傳回用戶端應用程式。所有從網站用戶端應用程式到網頁伺服器的流量都會歸在此類別中。輸入未經同意的要求
應用程式做為網路伺服器,並接聽來自遠端電腦的輸入網路要求。遠端電腦透過將初始要求傳送給做為伺服器的應用程式來起始網路存取。 遠端電腦會傳送一或多個要求給應用程式,而應用程式會將一或多個回應傳回遠端電腦。做為媒體伺服器功能的應用程式會歸在此類別中。
含有未定義領域的應用程式將無法存取指定類型的網路連線。 設定和強制網路隔離的功能可確保如果應用程式受到威脅,它只能存取已明確授與應用程式存取權的網路。這樣可大幅降低對其他應用程式和系統的影響範圍。
網路隔離會影響任何在下列嘗試存取網路的命名空間中的方法與屬性。
- Windows.Networking.BackgroundTransfer
- Windows.Networking.Sockets
- Windows.Web.AtomPub
- Windows.Web.Http
- Windows.Web.Syndication
- System.Net.Http
Windows 會主動強制網路隔離。如果未啟用適當的網路功能,則呼叫方法或是存取這些命名空間中的屬性,可能會因為網路隔離而導致網路存取失敗。在呼叫上面命名空間中的方法或是存取其屬性之其他命名空間中的類別也會受到影響。
建立應用程式資訊清單時,會在資訊清單中設定應用程式的網路功能。開發應用程式時,通常會使用 Visual Studio 來新增網路功能。可以使用文字編輯器在應用程式資訊清單檔案中手動設定網路功能。
網路隔離和功能
網路隔離是 Windows 8 所使用的應用程式安全性模型的一部分。Windows 會主動探索網路界限並為網路隔離強制網路存取限制。下列是系統將尋找的網路界限:
家用或工作場所網路
這是您本機家用或工作場所網路。它是由電腦所連線的區域子網路以及設定成網路一部分的區域 Proxy 所組成。會從這個界限中排除網際網路 Proxy。在網域環境中,這包括由 Active Directory 網站與子網路所定義的範圍網際網路
網際網路,但排除家用或工作場所網路。這是由提供網際網路存取的任何 Proxy 所組成。任何不屬於 [家用\工作場所網路] 一部分的網路存取都會被視為 [網際網路]****。
Windows 8 會將所有遠端網路主機歸類為這兩種類別的其中一種。藉由了解要與應用程式通訊的主機適用方向與類別,您將可為應用程式選擇正確的功能。
在應用程式資訊清單中必須啟用與網路相關的某些功能,才能授與應用程式網路存取權。這些功能被定義成 Windows 8 用來強制界限的安全性識別碼 (SID)。
以下定義網路隔離功能:
Visual Studio 中使用的詞彙 | 說明 |
---|---|
網際網路 (用戶端) |
提供公共場所的網際網路與網路的輸出存取,例如機場與咖啡廳。大部分需要網際網路存取的應用程式都應使用此功能。 這是應用程式資訊清單中的 internetClient 功能。 |
網際網路 (用戶端與伺服器) |
透過公共場所 (例如機場和咖啡廳) 的網際網路和網路提供應用程式輸入及輸出網路存取。 這是應用程式資訊清單中的 internetClientServer 功能。 |
私人網路 (用戶端和伺服器) |
在使用者信任的場所提供應用程式的輸入與輸出網路存取,例如家中與工作場所。 這是應用程式資訊清單中的 privateNetworkClientServer 功能。 |
注意
Windows Phone 市集應用程式具備單一網路功能,可啟用應用程式的所有網路存取。[網際網路 (用戶端與伺服器)] 功能可會同時啟用用戶端作業 (對外輸出存取) 和伺服器作業 (對內輸入存取) 的完整網路存取。不過,如果在 Package.appxmanifest 檔案中指定了任何網路功能 (internetClient、internetClientServer 或 privateNetworkClientServer),Windows Phone 市集應用程式在執行階段就會兼具用戶端和伺服器作業的完整網路存取。
當您在 Visual Studio 中開發和測試 Windows Phone 市集應用程式,即使並未在應用程式資訊清單檔案中指定網路功能 ([網際網路 (用戶端與伺服器)]),執行應用程式時也能夠使用此功能。不過發佈應用程式時,您的應用程式不會自動取得網路功能。如果您的應用程式需要網路連線,務必核取 [資訊清單設計工具] 的 [功能] 頁面上的 [網際網路 (用戶端與伺服器)] 功能。
在應用程式資訊清單中必須啟用某些其他功能,才能存取網路。這些功能被定義成用來強制界限的 GUID。
Visual Studio 中使用的詞彙 | 說明 |
---|---|
企業驗證 |
允許應用程式連線至需要網域認證的網路資源。此功能需要網域系統管理員啟用所有應用程式的功能。例如,從內部網路 Sharepoint 伺服器擷取資料的應用程式。 透過此功能,您的認證可用來在需要認證的網路上存取網路資源。具有此功能的應用程式可在網路上模擬您。 若要允許應用程式透過驗證 Proxy 來存取網際網路,此功能並非必要。 這是應用程式資訊清單中的 enterpriseAuthentication 功能。 |
鄰近性 |
與非常靠近電腦的裝置進行近距離鄰近性通訊時所需。近距離鄰近性可用來傳送或與鄰近裝置上的應用程式連線。 這個功能可讓應用程式存取網路以連線至非常靠近的裝置,只要使用者同意傳送邀請或是接受邀請即可。 這是應用程式資訊清單中的 proximity 功能。 |
共用使用者憑證 |
這個功能可讓應用程式存取軟體和硬體憑證,例如智慧卡憑證。在執行階段叫用這個功能時,使用者必須採取行動,例如插入卡片或是選取憑證。 透過這個功能,您的軟體與硬體憑證或智慧卡可供應用程式識別身分。您的員工、銀行或政府服務單位可使用這個功能來識別身分。 這是應用程式資訊清單中的 sharedUserCertificates 功能。 |
在應用程式資訊清單中必須啟用與裝置存取相關的某些裝置功能,網路存取才能如預期運作。這些裝置功能被定義成系統用來強制界限的 GUID。
Visual Studio 中使用的詞彙 | 說明 |
---|---|
網路攝影機 |
提供對網路攝影機的視訊摘要存取。 如果應用程式想要透過網路與遠端電腦分享網路攝影機的視訊摘要,就需要此功能。 這是應用程式資訊清單中的 webcam 功能。 |
了解您的應用程式需要哪些功能是非常重要的。下表列出一些常見的作業以及需要哪些功能。
需要的功能
應用程式 | 說明 |
---|---|
只取用內容的網站用戶端。這包含從網站載入 HTML 的應用程式,以及使用 RSS 同步發佈或 AtomPub 通訊協定的應用程式。 |
internetClient |
社交網路應用程式。這包含在社交網站上取用和產生內容的應用程式。 |
internetClient |
對等 (p2p) 應用程式。這包含提供即時訊息或聊天存取權的應用程式。 |
internetClientServer |
可以在家用網路或工作場所網路進行分享的應用程式。這包含存取媒體或連結網路的存放 (NAS) 內容的應用程式。 |
privateNetworkClientServer |
家中或工作場所的企業營運應用程式。這包含可作為 HTTP 用戶端或是使用通訊端或 WebSocket 的應用程式。 |
privateNetworkClientServer |
家中或工作場所具備網路功能的生產力應用程式。這包含可存取網路功能的生產力應用程式。 |
privateNetworkClientServer |
需要網路存取的遊戲應用程式。 |
internetClient |
可進行配對的多人網際網路遊戲應用程式。 |
internetClient |
與位置非常靠近的人進行的多人遊戲。 |
proximity |
多人遊戲應用程式,可以利用多點傳送探索或使用多點傳送來探索玩家。 |
internetClientServer |
使用家用或工作場所網路的多人遊戲應用程式。這包含可以利用多點傳送探索玩家或使用多點傳送來探索的應用程式。 |
privateNetworkClientServer |
廣播應用程式。這包含透過網際網路接收無線電廣播的應用程式。 |
internetClient |
網路隔離和網路界限
如果 Windows 8.1 要強制網路隔離,系統需要探索和決定網路界限。Windows 8.1 會以動態的方式執行此探索。系統會探查網路,以探索本機電腦網路介面上的位址以及介面繫結的任何位址,以判斷是否有做為在網際網路上傳送和接收之存取點的閘道或 IP 位址。 將探索下列項目:
- 家用或工作場所網路所使用的本機位址與子網路。
- 網際網路閘道和網際網路 Proxy。
家中或工作場所探索到的一般本機 IPv4 位址與子網路,包括下列私人 IPv4 位址範圍:
- 10.0.0.0-10.255.255.255
- 172.16.0.0-172.31.255.255
- 192.168.0.0-192.168.255.255
家中或工作場所探索到的一般本機 IPv6 位址與子網路,包括下列 IPv6 位址範圍:
- 與 IPV6 位址關聯的本機 IPv6 子網路。
- IPv6 連結-本機位址 (fe80::/10)。
- 用於轉換技術的 IPv6 通道位址 (例如,6to4 與 ISATAP),但不包括 Teredo (2001::/32) 所使用的 IPv6 位址範圍。
當使用者首次將電腦連線到網路 (家裡的無線 LAN (Wi-Fi) 網路) 時,可以選擇是否啟用網路上的共用。Windows 會使用此決定將網路歸類為信任或非信任。
如果符合下列其中一個條件,即會將網路端點視為家用或工作場所網路的一部分:
- 由使用者指定為屬於受信任網路的本機子網路。例如,家庭使用者通常會將其家用網路旗標設為「受信任」。本機子網路上的電腦將指定為 [家用\工作場所網路] 的一部分。
- 電腦位於網路上,而且會經過網域控制站的驗證。本機子網路中的網路端點會被視為私人的。內部網路位址空間中的網路端點會被視為私人的。
- 電腦已針對 DirectAccess 進行設定,而且網路端點是內部網路位址空間的一部分。
內部網路位址空間是由已設定的 Active Directory 站台和子網路所組成,並會使用群組原則特別針對 Windows 網路隔離進行設定。加入網域的電腦會向 Active Directory 和群組原則查詢此資訊。
不符合先前所述條件的所有其他網路端點都會視為 [網際網路]**** 上的網路端點。
如需網路隔離的系統管理員控制項的詳細資訊,請參閱隔離網路上的 Windows 市集應用程式
網路隔離和強制
當應用程式嘗試輸出用戶端起始要求 (例如傳送到 www.contoso.com 的 HTTP 網路要求) 時,系統會檢查資訊清單中針對該應用程式啟用的功能,並決定允許或封鎖傳送到特定主機 (例如 www.contoso.com) 的輸出用戶端起始要求。 如果允許輸出用戶端起始要求,則也會允許伺服器對輸出用戶端起始要求的回應。
當應用程式嘗試接聽輸入未經同意的要求時,系統將會針對其資訊清單中為應用程式所設定的功能執行檢查,並決定允許或封鎖來自遠端 IP 位址的輸入未經同意要求。 應用程式必須啟用 InterentClientServer 或 privateNetworkClientServer 功能,才能允許接聽輸入未經同意的要求。如果至少啟用其中一項功能,則允許應用程式在指定的網路類型上接聽一或多個連接埠的輸入未經同意要求。會檢查每個輸入未經同意的要求嘗試,以決定是否允許來自特定遠端來源 IP 位址的輸入未經同意要求。Windows 會判斷輸入未經同意的要求是來自家用\工作場所 IP 位址或是網際網路,並視啟用的功能和特定的遠端位址而定,來允許或拒絕存取。
網路隔離可與任何鄰近性元件完全整合。在應用程式資訊清單中啟用鄰近性功能時,不必啟用任何其他網路功能。使用者仍然必須同意傳送或接受來自鄰近性裝置的邀請,才能允許在鄰近性裝置與本機電腦之間通訊。
網路隔離和回送
傳統上,IP 回送位址和回送介面用於透過網路在不同應用程式間通訊,以及在本機電腦上一些應用程式中的處理序間通訊。
使用 IP 回送位址的網路通訊通常不能用於處理序間通訊 (兩個不同應用程式之間),因為受限於網路隔離。在針對通訊目的的相同程序內的應用程式中,允許使用 IP 回送位址的網路通訊。
如需啟用開發人員存取不同應用程式之間的 IP 回送位址以進行偵錯之用的詳細資訊,請參閱如何啟用回送和偵錯網路隔離。
背景傳輸與快顯通知
在 Windows 8.1、Windows Phone 8.1 和 Windows Server 2012 R2,Windows.Networking.BackgroundTransfer 命名空間中的 BackgroundDownloader 和 BackgroundUploader 類別支援使用者可在傳輸成功完成或無法完成時用來接收磚和快顯通知的選項。
為了讓使用 Windows.Networking.BackgroundTransfer 的應用程式能夠透過快顯通知進行通訊,您必須在應用程式資訊清單檔案中宣告它是 [支援快顯通知]。這個設定不在含有網路隔離設定的 [功能]**** 區段底下。[支援快顯通知] 設定位於 [應用程式]**** 索引標籤的 [通知] 區段底下。將 [支援快顯通知]**** 選項設為 [是],讓應用程式可以接收快顯通知。
如果未在應用程式資訊清單中啟用 [支援快顯通知],則系統會以無訊息方式略過 Windows.Networking.BackgroundTransfer 命名空間中的所有快顯設定,應用程式將不會收到任何快顯通知。
注意 使用者可以隨時手動停用或啟用您應用程式的快顯通知。
如需快顯通知的詳細資訊,請參閱傳送快顯通知和如何選擇加入快顯通知。
相關主題
其他資源
參考
Windows.Networking.BackgroundTransfer
範例