Sdílet prostřednictvím


Windows zabezpečení zpráv

Tato ukázka ukazuje, jak nakonfigurovat WSHttpBinding vazbu pro použití zabezpečení na úrovni zpráv s ověřováním systému Windows. Tato ukázka je založená na začínáme. V této ukázce je služba hostovaná v Internetové informační službě (IIS) a klient je konzolová aplikace (.exe).

Poznámka:

Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.

Výchozí zabezpečení wsHttpBinding<> je zabezpečení zpráv pomocí ověřování systému Windows. Konfigurační soubory v této ukázce explicitně nastaví mode atribut <zabezpečení> na Message a clientCredentialType atribut na Windows. Tyto hodnoty jsou výchozími hodnotami pro tuto vazbu, ale byly explicitně nakonfigurované, jak je znázorněno v následující ukázkové konfiguraci, která demonstruje jejich použití.

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

Konfigurace koncového bodu klienta se skládá z absolutní adresy koncového bodu služby, vazby a kontraktu. Konfigurace vazby klienta obsahuje odpovídající securityMode a authenticationMode.

<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>

Zdrojový kód služby byl upraven tak, aby ukázal, jak ServiceSecurityContext se dá použít pro přístup k identitě volajícího.

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

Při spuštění ukázky se požadavky na operace a odpovědi zobrazí v okně konzoly klienta. První volána metoda – GetCallerIdentity – vrátí název identity volajícího zpět klientovi. Stisknutím klávesy ENTER v okně konzoly ukončete klienta.

Jak nastavit, sestavit a spustit ukázku

  1. Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.

  2. Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.

  3. Pokud chcete spustit ukázku v konfiguraci s jedním počítačem nebo konfiguraci na více počítačích, postupujte podle pokynů v části Spouštění ukázek Windows Communication Foundation.