2009-06-10 10 views
1

Ist es möglich, die Identität eines Clients anzunehmen, wenn eine netTcp-Endpunktoperation über Konfiguration aufgerufen wird? Es gibt einen Abschnitt innerhalb des Client WCF Config wie folgt:Impersonate Client-Identität in WCF w/netTcpBinding

<client> 
    <endpoint 
     address="net.tcp://localhost:8081/tcpExample" 
     binding="netTcpBinding" 
     bindingConfiguration="myTcpBinding" 
     contract="TestTcp.IHelloTcp" 
     name="NetTcpBinding_IHelloTcp"> 
     <identity> 
      <userPrincipalName value="[email protected]" /> 
     </identity> 
    </endpoint> 
</client> 

Mein Kunde nicht scheitern, es scheint, wie die Identität an den Client angeschlossen ist, den aktuellen angemeldeten Benutzers, das heißt mir.

+0

Rufen Sie einen anderen Server an als den, der Ihren WLAN-Dienst hostet? Wenn ja, könnten Sie die Freuden der Delegation erleben. – Will

Antwort

1

HMm ... nicht sicher, ich folge. Das Standardverhalten für netTcpBinding besteht darin, Windows-Anmeldeinformationen zu verwenden, z. Ihr aktuelles Windows-Konto wird für die Dienstanmeldeinformationen verwendet.

Das ist der Standard direkt aus der Box.

Wenn Sie andere andere Benutzer imitieren möchten, nein, Sie können dies nicht in der Konfiguration tun - Sie müssen dies in Code tun. Das ist der einzige Weg zu gehen, Entschuldigung.

Die einzige Möglichkeit, einen anderen Benutzer in der Konfiguration anzugeben, wäre die Verwendung eines Zertifikats, das ein anderes Benutzerkonto definiert, das verwendet werden soll. Sie können ein einfaches Windows-Benutzerkonto mit seinem Kennwort nicht in Ihren Konfigurationsdateien konfigurieren.

3

Sie haben wirklich drei Möglichkeiten:

  1. Handbuch Identitätswechsel (WindowsIdentity.Impersonate)
  2. deklarative Identitätswechsel (OperationBehavior (Identitätswechsel = Impersonation.Required))
  3. Vollidentitätswechsel (ServiceAuthorizationBehavior.ImpersonateCallerForAllOperations)

A Stellen Sie außerdem sicher, dass das Konto, unter dem Sie Ihren Dienst ausführen, [email protected]) erhält die entsprechenden Berechtigungen sowohl auf Computer- als auch auf Domänenebene.