Megosztás a következőn keresztül:


Útmutató: A biztonsági mód beállítása

A Windows Communication Foundation (WCF) biztonsága három gyakori biztonsági móddal rendelkezik, amelyek a legtöbb előre definiált kötésen megtalálhatók: átvitel, üzenet és "átvitel üzenet hitelesítő adatokkal". Két további mód két kötésre vonatkozik: a "transport-credential only" (csak transport-credential only) módra, és a BasicHttpBinding"Both" módra, amely a NetMsmqBinding. Ez a témakör azonban a három gyakori biztonsági módra összpontosít: Transport, Messageés TransportWithMessageCredential.

Vegye figyelembe, hogy nem minden előre definiált kötés támogatja ezeket a módokat. Ez a témakör a módot az WSHttpBinding osztályokkal együtt NetTcpBinding állítja be, és bemutatja, hogyan állíthatja be a módot programozott módon és konfiguráción keresztül is.

További információ: WCF-biztonság, a biztonság áttekintése, a szolgáltatások biztonságossá tétele, valamint a szolgáltatások és ügyfelek védelme. További információ az átviteli módról és az üzenetről: Transport Security and Message Security.

A biztonsági mód beállítása kódban

  1. Hozza létre a használt kötésosztály egy példányát. Az előre definiált kötések listáját a Rendszer által biztosított kötések című témakörben találja. Ez a példa létrehozza az osztály egy példányát WSHttpBinding .

  2. Állítsa be a Mode tulajdonság által visszaadott objektum tulajdonságát Security .

    WSHttpBinding b = new WSHttpBinding();
    b.Security.Mode = SecurityMode.Transport;
    
    Dim b As New WSHttpBinding()
    b.Security.Mode = SecurityMode.Transport
    

    Másik lehetőségként állítsa a módot üzenetre, ahogyan az az alábbi kódban is látható.

    WSHttpBinding b = new WSHttpBinding();
    b.Security.Mode = SecurityMode.Message;
    
    Dim b As New WSHttpBinding()
    b.Security.Mode = SecurityMode.Message
    

    Vagy állítsa be a módot az üzenet hitelesítő adataival való átvitelre az alábbi kódban látható módon.

    WSHttpBinding b = new WSHttpBinding();
    b.Security.Mode = SecurityMode.TransportWithMessageCredential;
    
    Dim b As New WSHttpBinding()
    b.Security.Mode = SecurityMode.TransportWithMessageCredential
    
  3. A módot a kötés konstruktorában is beállíthatja, ahogy az az alábbi kódban is látható.

    WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
    
    Dim b As New WSHttpBinding(SecurityMode.Message)
    

A ClientCredentialType tulajdonság beállítása

Ha a módot a három érték egyikére állítja, az határozza meg a tulajdonság beállítását ClientCredentialType . Ha például az WSHttpBinding osztályt használja, a mód beállítása azt jelenti, hogy Transport az ClientCredentialType osztály tulajdonságát HttpTransportSecurity egy megfelelő értékre kell állítania.

A ClientCredentialType tulajdonság beállítása átviteli módhoz

  1. Hozza létre a kötés egy példányát.

  2. Állítsa be a tulajdonságot a Mode következőre Transport: .

  3. Állítsa be a ClientCredential tulajdonságot egy megfelelő értékre. Az alábbi kód a tulajdonságot a következőre Windowsállítja be: .

    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
    

Az Üzenet mód ClientCredentialType tulajdonságának beállítása

  1. Hozza létre a kötés egy példányát.

  2. Állítsa be a tulajdonságot a Mode következőre Message: .

  3. Állítsa be a ClientCredential tulajdonságot egy megfelelő értékre. Az alábbi kód a tulajdonságot a következőre Certificateállítja be: .

    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
    

A Mode és a ClientCredentialType tulajdonság beállítása konfigurációban

  1. Adjon hozzá egy megfelelő kötési elemet a <konfigurációs fájl kötési> eleméhez. Az alábbi példa egy <wsHttpBinding> elemet ad hozzá.

  2. Adjon hozzá egy <binding> elemet, és állítsa az attribútumát name egy megfelelő értékre.

  3. Adjon hozzá egy <security> elemet, és állítsa az mode attribútumot a következőre Message: , Transportvagy TransportWithMessageCredential.

  4. Ha a mód be van állítva Transport, adjon hozzá egy <transport> elemet, és állítsa be az clientCredential attribútumot egy megfelelő értékre.

    Az alábbi példa a "Transport", majd az clientCredentialType elem attribútumát "Windows"-ra állítja<transport>.

    <wsHttpBinding>
    <binding name="TransportSecurity">
        <security mode="Transport" >
           <transport clientCredentialType = "Windows" />
        </security>
    </binding>
    </wsHttpBinding >
    

    Másik lehetőségként állítsa be a security mode "Message", majd egy <"message"> elem" értéket. Ez a példa a következőt állítja clientCredentialType be: "Certificate".

    <wsHttpBinding>
    <binding name="MessageSecurity">
        <security mode="Message" >
           <message clientCredentialType = "Certificate" />
        </security>
    </binding>
    </wsHttpBinding >
    

    TransportWithMessageCredential Az érték használata egy speciális eset, és az alábbiakban ismertetjük.

A TransportWithMessageCredential használata

A biztonsági mód TransportWithMessageCredentialbeállításakor az átvitel határozza meg az átviteli szintű biztonságot biztosító tényleges mechanizmust. A HTTP-protokoll például a Secure Sockets Layer (SSL) protokollt használja HTTP-n (HTTPS) keresztül. Ezért a rendszer figyelmen kívül hagyja az ClientCredentialType átviteli biztonsági objektumok (például HttpTransportSecurity) tulajdonságának beállítását. Más szóval csak az ClientCredentialType üzenet biztonsági objektumát állíthatja be (a WSHttpBinding kötéshez, az NonDualMessageSecurityOverHttp objektumhoz).

További információ : Az átviteli biztonság és az üzenet hitelesítő adatainak használata.

Lásd még