Was ist der beste Ansatz, um sicherzustellen, dass Sie nur einmal authentifizieren müssen, wenn Sie eine API verwenden, die auf WCF basiert?Wie kann ich mich nur einmal mithilfe von Clientanmeldeinformationen in WCF authentifizieren?
Meine aktuellen Bindungen und Verhaltensweisen sind im Folgenden aufgeführt
<bindings>
<wsHttpBinding>
<binding name="wsHttp">
<security mode="TransportWithMessageCredential">
<transport/>
<message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="true"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="NorthwindBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceAuthorization principalPermissionMode="UseAspNetRoles"/>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
Als nächstes ist das, was ich in meiner Client-Anwendung bin mit zu authentifizieren (derzeit muß ich diese jedes Mal will ich einen Anruf in WCF machen)
Dim client As ProductServiceClient = New ProductServiceClient("wsHttpProductService")
client.ClientCredentials.UserName.UserName = "foo"
client.ClientCredentials.UserName.Password = "bar"
Dim ProductList As List(Of Product) = client.GetProducts()
Was ich tun möchte, ist auth w/API einmal mit diesen Anmeldeinformationen, dann erhalten Sie eine Art von Token für den Zeitraum, in dem meine Client-Anwendung das Web-Service-Projekt verwendet. Ich dachte, seethsecuritycontext = true hat das für mich getan?