それは、自分ではできない「簡単そう」な作業です。ユーザー名とパスワードの資格情報で保護され、セッション モードのままである必要がある WCF サービスがあります。
というわけで、Activation関数とのインターフェース部分です。
<ServiceContract(SessionMode:=SessionMode.Required, ProtectionLevel:= ProtectionLevel.EncryptAndSign)>
Public Interface ServiceS
<OperationContract()>
Function Activation(A As String) As String
End Interface
バックグラウンド クラス
Public Class Service1
Implements ServiceS
Function Activation(A As String) As String Implement ServiceS.Activation
Return "Hello, " & A & "!"
End Function
End Class
次は web.config です。
<services>
<service name="MyServiceS.Service1" behaviorConfiguration="MyBehavior">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="MyBinding" contract="MyServiceS.ServiceS" />
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="MyBinding" useDefaultWebProxy="false">
<security mode="Message" />
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add scheme="https" binding="wsHttpBinding"/>
<add scheme="http" binding="wsHttpBinding"/>
</protocolMapping>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
クライアント側のコード。
Dim wcfTest As New MyService.ServiceSClient
wcfTest.ClientCredentials.Windows.ClientCredential.UserName = "Name"
wcfTest.ClientCredentials.Windows.ClientCredential.Password = "Password"
Dim Reply as String = wcfTest.Activation("Alex")
私は何を期待していますか?WPF アプリケーションがサービスに接続し、ユーザー名とパスワードを渡す必要があります。それらが正しい場合、ユーザーはアクティベーション機能にアクセスできます。そうでない場合は、セッションを閉じる必要があります。そのため、ログインとパスワードをサービスに渡しましたが、確認する方法がわかりません。インターフェイスまたはバックグラウンド クラスの一部にする必要がありますか。
私はインターネットでたくさんの例を見ましたが、それらのほとんどは他のことについてのものでした.
- ASPのご利用のすすめ。ASPは必要ありません。このサービスは純粋な WCF である必要があります。
- 証明書の使用。証明書は必要ありません。ユーザー名とパスワードの確認のみである必要があります。
- 役割。役割は必要ありません。ユーザー名とパスワードの確認のみ。
- basicHttpBinding. いいえ、wsHttpBinding のみです。
- .Net 3.5 または 4.5。.Net 3.5 に対処する多くのソリューション。私は4.0を使用しています(以前は4.5を使用していましたが、新しいテクノロジーが統合されており、実際には完全な例はありません)。
wsHttpBindingのみ、WCFのみ、4.0のみでユーザー名とパスワードのみをチェックしてセッションを維持する方法をご存知の方、アドバイスをお願いします。あるいは、もしそうならなぜそれが不可能なのか。どうもありがとう!