連接群組
連接群組在單一應用程式內與特定要求產生關聯,以定義連接集區。代表使用者連接至後端伺服器,並使用支援委派的驗證 (Authentication) 通訊協定 (例如 Kerberos) 的中介層 (Middle Tier) 應用程式,或提供它自己的憑證的中介層應用程式,可能會需要這個群組 (如下面範例所示)。例如,某個使用者 Joe 瀏覽顯示他的薪資資訊的內部網站。驗證 Joe 之後,中介層應用程式伺服器使用 Joe 的憑證來連接後端伺服器,以擷取他的薪資資訊。接著,Susan 瀏覽網站並要求她的薪資資訊。因為中介層應用程式已經使用 Joe 的憑證產生連接,因此後端伺服器還是以 Joe 的資訊回應。然而,如果應用程式指派各個要求到後端伺服器來連接由使用者名稱形成的群組,那麼每一個使用者都屬於不同連接集區,並不會意外地與另外的使用者共用驗證資訊。
若要指派要求給特定的連接群組,您必須在做出要求之前指派名稱給您 WebRequest 的 ConnectionGroupName 屬性。下列範例示範如何指派使用者資訊給群組連接,假設應用程式在呼叫這段程式碼之前設定變數 UserName、SecurelyStoredPassword 和 Domain,而且 UserName 是唯一的。
// Create a connection group name.
SHA1Managed Sha1 = new SHA1Managed();
Byte[] updHash = Sha1.ComputeHash(Encoding.UTF8.GetBytes(UserName + SecurelyStoredPassword + Domain));
String secureGroupName = Encoding.Default.GetString(updHash);
// Create a request for a specific URL.
WebRequest myWebRequest=WebRequest.Create("https://www.contoso.com");
myWebRequest.Credentials = new NetworkCredential(UserName, SecurelyStoredPassword, Domain);
myWebRequest.ConnectionGroupName = secureGroupName;
WebResponse myWebResponse=myWebRequest.GetResponse();
// Insert the code that uses myWebResponse.
MyWebResponse.Close();
[Visual Basic]
' Create a secure group name.
Dim Sha1 As New SHA1Managed()
Dim updHash As [Byte]() = Sha1.ComputeHash(Encoding.UTF8.GetBytes((UserName + SecurelyStoredPassword + Domain)))
Dim secureGroupName As [String] = Encoding.Default.GetString(updHash)
' Create a request for a specific URL.
Dim myWebRequest As WebRequest = WebRequest.Create("https://www.contoso.com")
myWebRequest.Credentials = New NetworkCredential(UserName, SecurelyStoredPassword, Domain)
myWebRequest.ConnectionGroupName = secureGroupName
Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
' Insert the code that uses myWebResponse.
MyWebResponse.Close()
使用正確的憑證,在隨後的要求上指派不同值給 UserName 變數會產生新的伺服器連接。