Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przykładzie pokazano, jak skonfigurować WSHttpBinding powiązanie w celu korzystania z zabezpieczeń na poziomie komunikatów przy użyciu uwierzytelniania systemu Windows. Ten przykład jest oparty na Rozpoczynanie. W tym przykładzie usługa jest hostowana w usługach Internet Information Services (IIS), a klient jest aplikacją konsolową (.exe).
Uwaga / Notatka
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
Domyślne zabezpieczenia usługi <wsHttpBinding> to zabezpieczenia komunikatów przy użyciu uwierzytelniania systemu Windows. Pliki konfiguracyjne w tym przykładzie jawnie ustawiają atrybut mode zabezpieczeń <> na Message i atrybut clientCredentialType na Windows. Te wartości są wartościami domyślnymi dla tego powiązania, ale zostały jawnie skonfigurowane, jak pokazano w poniższej przykładowej konfiguracji w celu zademonstrowania ich użycia.
<bindings>
<wsHttpBinding>
<binding>
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
Konfiguracja punktu końcowego klienta składa się z bezwzględnego adresu punktu końcowego usługi, powiązania i kontraktu. Konfiguracja powiązania klienta odbywa się z użyciem odpowiednich securityMode i 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>
Kod źródłowy usługi został zmodyfikowany w celu zademonstrowania sposobu, w jaki ServiceSecurityContext można go użyć do uzyskania dostępu do tożsamości obiektu wywołującego.
public string GetCallerIdentity()
{
// The Windows identity of the caller can be accessed on the ServiceSecurityContext.WindowsIdentity.
return OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;
}
Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknie konsoli klienta. Pierwsza metoda o nazwie — GetCallerIdentity zwraca nazwę tożsamości obiektu wywołującego z powrotem do klienta. Naciśnij ENTER w oknie konsoli, aby zamknąć klienta.
Aby skonfigurować, skompilować i uruchomić przykładowy program
Upewnij się, że wykonano procedurę instalacji One-Time dla przykładów programu Windows Communication Foundation.
Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w Kompilowanie przykładów Windows Communication Foundation.
Aby uruchomić przykład w konfiguracji pojedynczej lub między komputerami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.