程式碼範例:ASP.NET 簡單 MVC 2
更新日期:2015 年 6 月 19 日
適用對象:Azure
此範例說明如何將Microsoft Azure Active Directory 存取控制 (也稱為 存取控制 Service 或 ACS) 與 ASP.NET MVC 應用程式整合。 此範例的程式碼位於 Microsoft Azure Active Directory 存取控制 (ACS) 程式碼範例套件的ASPNETSimpleMVC (C#\Websites\ASPNETSimpleMVC) 子目錄中。
必要條件
若要執行此範例,您將需要:
Azure 首頁和存取控制命名空間的帳戶。 此範例假設移至Microsoft Azure 管理入口網站的名稱 (https://manage.WindowsAzure.com) 登入,然後按一下[Active Directory]。 (疑難排解提示:「Active Directory」專案遺失或無法使用,) 是 acssamples,即使您的存取控制命名空間名稱不同也一樣。
Visual Studio 2010 (任何版本)
Windows Identity Foundation SDK
如需詳細資訊,請參閱 ACS 必要 條件 (https://go.microsoft.com/fwlink/?LinkId=221065) 。
設定範例
您可以使用 ACS 管理入口網站或 ACS 管理服務來執行此範例所需的 ACS 設定。 此主題將說明這兩種選項。
選項 1:使用 ACS 管理入口網站設定範例
選項 2:使用 ACS 管理服務設定範例
選項 1:使用 ACS 管理入口網站設定範例
使用 ACS 管理入口網站設定範例
移至Microsoft Azure管理入口網站 (https://manage.WindowsAzure.com) 登入,然後按一下 [Active Directory]。 (疑難排解提示: 「Active Directory」專案遺失或無法使用)
若要建立存取控制命名空間,請依序按一下 [新增]、[應用程式服務]、[存取控制] 和 [快速建立]。 (或是先按一下 [新增] 再按一下 [存取控制命名空間])。
若要管理存取控制命名空間,請選取該命名空間,然後按一下 [管理]。 (或按一下 [存取控制命名空間]、選取 [命名空間],然後按一下 [管理])。
此動作可開啟「存取控制服務」管理入口網站。
若要與網站使用者登入時可使用的身分識別提供者建立關係,請按一下 [身分識別提供者],然後新增 Yahoo! 和 Google。 若要返回主頁面,請按一下 [首頁]。
若要向 ACS 註冊您的應用程式,請在 存取控制 服務管理入口網站的首頁上,按一下[信賴憑證者應用程式],按一下 [新增],然後在表單中輸入下列資訊:
在 [名稱] 欄位中,輸入 ASPNET Simple MVC Sample。
在 [ 領域] 欄位中,輸入 https://localhost:63000/
在 [ 傳回 URL] 欄位中,輸入 https://localhost:63000/
在 [ 錯誤 URL] 欄位中,輸入 https://localhost:63000/Error
在 [權杖格式] 欄位中,選取 [SAML 2.0]。
在 [權杖簽署] 欄位中,選取 [使用服務命名空間憑證 (標準)]。
按一下 [儲存],然後按一下 [首頁] 返回主頁面。
註冊您的信賴憑證者之後,現在可以建立規則,以判斷 ACS 將發出給應用程式的宣告。 在此範例中,我們將直接傳遞身分識別提供者所發出的所有宣告。 若要建立此規則,請按一下 [規則群組],然後按一下 [ASPNET Simple MVC Sample 的預設規則群組]。 按一下接近頁面底部的 [產生] 連結。 確定已選取三個識別提供者 Yahoo!、Google 和 Windows Live ID (Microsoft 帳戶) ,然後按一下 [產生]。
按一下 [儲存],然後瀏覽回到主要頁面。
設定 ACS 後,開啟Visual Studio。
選項 2:使用 ACS 管理服務設定範例
Visual Studio範例解決方案有一個名為ConfigureSample的主控台應用程式,其使用 ACS 管理服務和通用類別庫中定義的常見協助程式。 此應用程式可用來設定您的存取控制命名空間,以便與此範例搭配使用。
使用 ACS 管理服務設定範例
若要設定範例,請開啟 SamplesConfiguration.cs (acs\Management\ManagementService\Common)。 將 Common 類別庫中SamplesConfiguration類別中的預留位置取代為 存取控制 命名空間的相關資訊。 您可以在 ACS 管理入口網站中找到資訊。
若要流覽至 ACS 管理入口網站:請移至Microsoft Azure管理入口網站 (https://manage.WindowsAzure.com) ,登入,然後按一下 [Active Directory]。 (疑難排解提示:「Active Directory」專案遺失或無法使用) 若要管理存取控制命名空間,請選取命名空間,然後按一下 [管理]。 (或按一下 [存取控制命名空間]、選取 [命名空間],然後按一下 [管理])。
ServiceNamespace - 輸入存取控制命名空間的名稱。
ManagementServiceIdentityName - 輸入 ACS 管理服務帳戶的名稱。 預設值為 ManagementClient。
若要尋找管理服務帳戶名稱,請在 ACS 管理入口網站中,按一下 [ 管理服務]。 [管理服務帳戶] 之下會依名稱列出帳戶。
ManagementServiceIdentityKey - 輸入管理服務帳戶的密碼。
若要尋找管理服務帳戶密碼,請在 ACS 管理入口網站中,按一下 [ 管理服務]。 按一下管理服務帳戶的名稱,然後在 [認證] 下方按一下 [密碼]。 密碼會出現在 [密碼] 欄位中。 若要複製密碼,請按一下 [顯示密碼]。
在 Visual Studio 中執行ConfigureSample應用程式,這會設定 ACS 執行此範例。
執行範例
執行範例
在 Visual Studio 中開啟位於Websites\ASPNETSimpleMVC\ASPNETSimpleMVC.sln的範例
按 F5 啟動應用程式。
關閉瀏覽器以停止應用程式,並繼續設定 ACS。
以滑鼠右鍵按一下專案,然後從內容功能表中選取 [新增 STS 參考]。
在對話方塊中,將 Web 應用程式的根目錄輸入 [應用程式 URI] 欄位中,然後按 [下一步] 。 在此範例中,此值為 https://localhost:63000/
注意
尾端斜線很重要,因為它與您在 ACS 中為信賴憑證者輸入的值一行。 精靈會發出您的網站未使用 SSL 的警告。 請按一下 [是] 按鈕接受此警告,但切記,生產性網站在這些案例中幾乎都應使用 SSL。
在下一個視窗中,選取 [使用現有的 STS] 選項按鈕,然後輸入存取控制命名空間所發行WS-Federation中繼資料的 URI。 若要尋找 URI,請在 ACS 入口網站中,按一下 [應用程式整合]。 如果存取控制命名空間的名稱是acssamples,則 URI 為 https://acssamples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml 。 輸入此值之後,按 [下一步]。
由於您的網站不需要加密權杖,所以按 [下一步],然後按一下 [完成]。
ACS 和您的應用程式現在已設定。 在 Visual Studio中按F5以執行應用程式。 您的瀏覽器將會導向 ACS 裝載的主領域探索頁面。
按一下 [Google]。 您的瀏覽器會被重新導向至 Google 登入頁面。
為 Google 帳戶輸入認證,並拒絕使用者同意表單。
您的瀏覽器應該返回 https://localhost:63000/Error 並顯示自訂錯誤字串,指出已取消登入網站。
若要重試,請按一下連結,再按一下身分識別提供者。
當瀏覽器進入該身分識別提供者後,請輸入測試帳戶的認證,但這次接受使用者同意表單。
您的瀏覽器應該會返回 https://localhost:63000/ 。 請留意到您的測試身分識別的名稱會出現在頁面的右上方區段。 此資料是由識別提供者所發出,並透過 ACS 傳回給您的應用程式。