Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zabezpečení wcf (Windows Communication Foundation) má tři běžné režimy zabezpečení, které se nacházejí u většiny předdefinovaných vazeb: přenos, zpráva a přenos s přihlašovacími údaji zprávy. Dva další režimy jsou specifické pro dvě vazby: režim "pouze transport-credential" nalezený v BasicHttpBindingrežimu , a "Oba" režim nalezen na NetMsmqBinding. Toto téma se však zaměřuje na tři běžné režimy zabezpečení: Transport, Messagea TransportWithMessageCredential.
Všimněte si, že ne všechny předdefinované vazby podporují všechny tyto režimy. Toto téma nastaví režim s třídami WSHttpBinding a NetTcpBinding ukazuje, jak režim nastavit programově i prostřednictvím konfigurace.
Další informace naleznete v tématu Zabezpečení WCF, viz přehled zabezpečení, zabezpečení služeb a zabezpečení služeb a klientů. Další informace o režimu přenosu a zprávě naleznete v tématu Zabezpečení přenosu a zabezpečení zpráv.
Nastavení režimu zabezpečení v kódu
Vytvořte instanci třídy vazby, kterou používáte. Seznam předdefinovaných svázání najdete v tématu System-Provided Bindings. Tento příklad vytvoří instanci WSHttpBinding třídy.
Nastavte vlastnost
Modeobjektu vráceného vlastnostíSecurity.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Transport;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.TransportPřípadně nastavte režim na zprávu, jak je znázorněno v následujícím kódu.
WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Message;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.MessageNebo nastavte režim přenosu pomocí přihlašovacích údajů zprávy, jak je znázorněno v následujícím kódu.
WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.TransportWithMessageCredential;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.TransportWithMessageCredentialRežim můžete také nastavit v konstruktoru vazby, jak je znázorněno v následujícím kódu.
WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);Dim b As New WSHttpBinding(SecurityMode.Message)
Nastavení vlastnosti ClientCredentialType
Nastavení režimu na jednu ze tří hodnot určuje způsob nastavení ClientCredentialType vlastnosti. Například při použití třídy WSHttpBinding, nastavení režimu na Transport znamená, že musíte nastavit vlastnost ClientCredentialType třídy HttpTransportSecurity na odpovídající hodnotu.
Nastavení vlastnosti ClientCredentialType pro režim přenosu
Vytvořte instanci vazby.
Nastavte vlastnost
ModenaTransport.ClientCredentialNastavte vlastnost na odpovídající hodnotu. Následující kód nastaví vlastnost naWindows.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Transport; b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.Transport b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows
Nastavení vlastnosti ClientCredentialType pro režim zprávy
Vytvořte instanci vazby.
Nastavte vlastnost
ModenaMessage.ClientCredentialNastavte vlastnost na odpovídající hodnotu. Následující kód nastaví vlastnost naCertificate.WSHttpBinding b = new WSHttpBinding(); b.Security.Mode = SecurityMode.Message; b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate;Dim b As New WSHttpBinding() b.Security.Mode = SecurityMode.Message b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate
Nastavení vlastnosti Mode a ClientCredentialType v konfiguraci
Přidejte vhodný vazebný element do <bindings> elementu konfiguračního souboru. Následující příklad přidá <wsHttpBinding> element.
<binding>Přidejte prvek a nastavte jehonameatribut na odpovídající hodnotu.Přidání elementu
<security>a nastavení atributumodenaMessage,TransportneboTransportWithMessageCredential.Pokud je režim nastaven na
Transport, přidejte<transport>prvek a nastavteclientCredentialatribut na odpovídající hodnotu.Následující příklad nastaví režim na "
Transport", a pak nastavíclientCredentialTypeatribut elementu<transport>na "Windows".<wsHttpBinding> <binding name="TransportSecurity"> <security mode="Transport" > <transport clientCredentialType = "Windows" /> </security> </binding> </wsHttpBinding >Případně nastavte
security modehodnotu "Message", následovanou prvkem<"message">. Tento příklad nastavíclientCredentialTypena "Certificate".<wsHttpBinding> <binding name="MessageSecurity"> <security mode="Message" > <message clientCredentialType = "Certificate" /> </security> </binding> </wsHttpBinding >Použití hodnoty TransportWithMessageCredential je zvláštní případ. Toto je vysvětleno níže.
Použití TransportWithMessageCredential
Při nastavování režimu zabezpečení na TransportWithMessageCredential, přenos určuje skutečný mechanismus, který poskytuje zabezpečení na úrovni přenosu. Například protokol HTTP používá protokol SSL (Secure Sockets Layer) přes HTTP (HTTPS). Proto je nastavení vlastnosti jakéhokoli objektu ClientCredentialType zabezpečení přenosu (například HttpTransportSecurity) ignorováno. Jinými slovy, můžete nastavit pouze ClientCredentialType objekt zabezpečení zprávy (pro WSHttpBinding vazbu, NonDualMessageSecurityOverHttp objekt).
Další informace naleznete v tématu Postupy: Zabezpečení přenosu a přihlašovací údaje zpráv.