0

それは、自分ではできない「簡単そう」な作業です。ユーザー名とパスワードの資格情報で保護され、セッション モードのままである必要がある 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のみでユーザー名とパスワードのみをチェックしてセッションを維持する方法をご存知の方、アドバイスをお願いします。あるいは、もしそうならなぜそれが不可能なのか。どうもありがとう!

4

1 に答える 1