Megosztás:


Üzenetbiztonsági Windows

Ez a minta bemutatja, hogyan konfigurálhat egy kötést WSHttpBinding az üzenetszintű biztonság Windows-hitelesítéssel való használatára. Ez a minta az első lépéseken alapul. Ebben a mintában a szolgáltatás az Internet Information Servicesben (IIS) található, az ügyfél pedig egy konzolalkalmazás (.exe).

Megjegyzés:

A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.

A wsHttpBinding< alapértelmezett biztonsága a> Windows-hitelesítést használó üzenetbiztonság. A mintában szereplő konfigurációs fájlok kifejezetten a modebiztonság< attribútumát> és az Message attribútumot a következőre clientCredentialTypeállítják be: .Windows Ezek az értékek a kötés alapértelmezett értékei, de explicit módon lettek konfigurálva, ahogyan az alábbi mintakonfigurációban látható, a használatuk bemutatásához.

<bindings>
    <wsHttpBinding>
        <binding>
            <security mode="Message">
                <message clientCredentialType="Windows"/>
            </security>
        </binding>
    </wsHttpBinding>
</bindings>

Az ügyfélvégpont konfigurációja a szolgáltatásvégpont, a kötés és a szerződés abszolút címéből áll. A klienskapcsolat megfelelő securityMode és authenticationMode konfigurációval van ellátva.

<system.serviceModel>
  <client>
    <endpoint address=
            "http://localhost/servicemodelsamples/service.svc"
            binding="wsHttpBinding"
            bindingConfiguration="Binding1"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  </client>

  <bindings>
    <wsHttpBinding>
      <!-- The default security for the WSHttpBinding is -->
      <!-- Message security using Windows authentication. -->
      <!-- This configuration explicitly defines the security mode -->
      <!-- as Message and the clientCredentialType as Windows -->
      <!-- for demonstration purposes. -->
      <binding name="Binding1">
        <security mode="Message">
          <message clientCredentialType="Windows"/>
        </security>
      </binding>
    </wsHttpBinding>
  </bindings>
</system.serviceModel>

A szolgáltatás forráskódját módosítottuk, hogy bemutassuk, hogyan használható a ServiceSecurityContext hívó identitásának eléréséhez.

public string GetCallerIdentity()
{
    // The Windows identity of the caller can be accessed on the ServiceSecurityContext.WindowsIdentity.
    return OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;
}

A minta futtatásakor a műveleti kérelmek és a válaszok megjelennek az ügyfélkonzol ablakában. Az első metódus neve - GetCallerIdentity - visszaadja a hívó identitás nevét az ügyfélnek. Az ügyfél leállításához nyomja le az ENTER billentyűt a konzolablakban.

A példa beállítása, elkészítése és futtatása

  1. Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time beállítási eljárását.

  2. A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse Windows Communication Foundation-mintákcímű témakör utasításait.

  3. Ha a mintát egy- vagy számítógépközi konfigurációban szeretné futtatni, kövesse a Windows Communication Foundation-minták futtatásával kapcsolatos utasításokat.