使用 FederatedPassiveSignIn 控制項建立 ASP.NET 信賴憑證者應用程式與 STS 之間的信任

使用 FederatedPassiveSignIn 控制項時,您可以擴充您的網站,以便將使用者重新導向到同盟安全性權杖服務 (STS),以及處理該 STS 所簽發的安全性權杖。

在這個練習中,您要建立宣告感知 ASP.NET 信賴憑證者應用程式。 接著,您要使用 FederatedPassiveSignIn 將使用者重新導向到本機 STS。 最後,您要使用 FedUtil 來建立本機 STS。

注意

您必須以提升權限的模式執行 Visual Studio,才能使 FedUtil 正常運作。

在 Visual Studio 中,開啟 [檔案] 功能表,然後依序選取 [新增]、[網站]。 選取 [宣告感知 ASP.NET 網站]。

在專案中的 login.aspx 檔案上按一下滑鼠右鍵,然後選取 [設計工具檢視]:

b8405c19-6fad-494f-86a6-6eee77c52905

開啟 [工具箱],然後開啟 [Windows Identity Foundation 控制項] 區段,接著找出 FederatedPassiveSignIn 控制項:

4d9e806f-4d45-497f-a9e9-b89297c6d730

FederatedPassiveSignIn 控制項拖曳到設計工具中的 login.aspx 頁面:

41a55633-fd1c-48ad-a60e-930065017d30

如果 FederatedPassiveSignIn 控制項未出現在工具箱中,請開啟 [工具箱] 功能表,然後選取 [選擇工具箱項目]。 在 [.NET Framework 元件] 索引標籤上,確定您已選取 FederatedPassiveSignIn 控制項:

71d8383f-8929-4646-8988-3d2621f9af4e

FederatedPassiveSignIn 控制項新增到 login.aspx 頁面之後,您就可以移除現有的登入表單:

1d7d9f54-47aa-4321-93ae-846c34468497

在設計工具中選取 FederatedPassiveSignIn 控制項,然後檢視 [屬性] 視窗。 將 UseFederationPropertiesFromConfiguration 屬性設定成 true。 當此屬性為 false 時,您無法對該控制項執行 FedUtil。 當此屬性為 true 時,控制項會略過其本身已設定的任何被動同盟屬性。

FederatedPassiveSignIn 控制項上按一下滑鼠右鍵,然後選取 [叫用 FedUtil]。 在 FedUtil 中,依照使用 FedUtil 建立 ASP.NET 信賴憑證者應用程式與 STS 之間的信任 中<使用現有的 STS>一節中的步驟執行。

如果在相同登入頁面上有多個 FederatedPassiveSignIn 控制項,且您希望每一個控制項都使用不同的驗證方法以便將使用者重新導向到不同的 STS,這時您必須將每個控制項的 UseFederationPropertiesFromConfiguration 屬性設定成 false,接著在這些控制項本身上面設定被動同盟屬性,而不要使用 FedUtil。

FederatedPassiveSignIn 控制項接收到同盟被動登入回應 (RSTR) 時,它會預期 wctx 屬性包含的控制項識別碼與網頁上的控制項相符合。 這就是解決在同一登入頁面上有多個 FederatedPassiveSignIn 控制項之狀況的作法,而且起始同盟被動登入要求 (RST) 的控制項必須處理回應 (RSTR)。 如果 STS 透過同盟被動回應 (RSTR) 傳送權杖且捨棄 wctx 屬性,FederatedPassiveSignIn 控制項將無法成功處理該回應。

FederatedPassiveSignIn 控制項執行 FedUtil 的方式,不同於對 Visual Studio 中專案按一下滑鼠右鍵來執行 FedUtil 的方式。 從控制項執行 FedUtil,表示 [應用程式資訊] 頁面中的欄位不會預先填妥。 另外,在 [安全性權杖服務] 頁面中的唯一可用選項就是使用現有的 STS。 建議您先依照 HOW TO:建立 ASP.NET STSHOW TO:建立 WCF STS 中的說明步驟來建立 STS。 建立 STS 之後,您便可以接著從 FederatedPassiveSignIn 控制項執行 FedUtil,並建立應用程式與 STS 之間的信任關係。