3) prawda, wsHttpBinding i wsDualHttpBinding są jedynymi Wiązania HTTP, które obsługują sesje
5) fałszywych, w celu uwierzytelnienia dzwoniących usługa nie koniecznie musisz mieć wszelkie zabezpieczenia na poziomie transportu (takie jak SSL/HTTPS). Jedynym wymaganiem jest skonfigurowanie usług IIS w celu włączenia Integrated Windows Authentication dla katalogu wirtualnego. Następnie w WCF masz trzy możliwości, aby umożliwić ten scenariusz:
a) korzystają z zabezpieczeń na poziomie transportu na wsHttpBinding z poświadczeń systemu Windows (HTTPS)
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="SecurityEnabledWsHttp">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
b) Za bezpieczeństwo wiadomość szczebla na wsHttpBinding z okna poświadczenia (HTTP)
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="SecurityEnabledWsHttp">
<security mode="Message">
<message clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
c) Uruchom usługę pod ASP.NET trybie kompatybilności i umożliwienie Windows Authentication w ŻMIJA.NET (HTTP)
<system.web>
<authentication mode="Windows" />
</system.web>
Należy zauważyć, że w i b będzie dostęp tożsamości rozmówcy z poziomu usług w ten sposób:
OperationContext.Current.ServiceSecurityContext.WindowsIdentity
6) prawda, transport Zabezpieczenia na poziomie muszą być włączone na wsHttpBinding w celu użycia HTTPS
7) Fałsz, Niezawodne sesje to szczególna realizacja Niezawodne przesyłanie wiadomości dla sesji WCF. Niezawodne przesyłanie wiadomości jest standardową specyfikacją WS- *, zaprojektowaną w celu zagwarantowania dostarczania wiadomości w niewiarygodnej sieci. Możesz używać sesji WCF bez niezawodnego przesyłania komunikatów i viceversa. Sesje są włączone na umowy o świadczenie usług z tego atrybutu:
[ServiceContract(SessionMode=SessionMode.Required)]
public interface IMyService {
// ...
}
Należy również pamiętać, że w celu utrzymania stanu pomiędzy usługą połączenia będą jawnie trzeba włączyć odpowiedni tryb instancji w sprawie realizacji zamówienia usługę:
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
public class MyService : IMyService {
// ...
}
Istnieją dwa rodzaje sesji w WCF: Bezpieczne sesje i Niezawodne sesje. Domyślnym ustawieniem dla wsHttpBinding i netTcpBinding jest użycie Secure Sessions.
Dla wsHttpBinding jest to realizowane za pomocą poziomu zabezpieczeń na poziomie wiadomości przy użyciu poświadczeń klienta, co jest domyślnym ustawieniem dla wiązania .
Zamiast polecenia netTcPBinding sesja zostaje ustanowiona na na poziomie tranportowym przy użyciu funkcji protokołu TCP.
Oznacza to, że po prostu przełączenie na wsHttpBinding lub netTcpBinding umożliwi obsługę sesji WCF.
Alternatywą jest użycie Niezawodne sesje. Musi to być jawnie włączone w konfiguracji powiązania i usuwa wymóg stosowania zabezpieczeń wiadomości dla wsHttpBinding. Więc to będzie działać:
<bindings>
<wshttpbinding>
<binding name="ReliableSessionEnabled">
<reliablesession enabled="True" ordered="False" />
<security mode="None" />
</binding>
</wshttpbinding>
</bindings>
8) Fałsz, niezawodny Sesje są stosowane niezależnie od ustawień zabezpieczeń kanału komunikacyjnego.
Bardziej szczegółowe wyjaśnienie można znaleźć na stronie this article.
Czy podczas tej konfiguracji występują konkretne błędy lub czy sprawdzasz, czy taka konfiguracja jest możliwa? –
Chciałbym wiedzieć, czy konfiguracja jest możliwa: np. Sesje WCF z HTTPS. Dzięki. –