2009-06-23 5 views
1

ich einen WCF-Dienst schreibt, die den Zugang zu Operationen auf AD-Benutzergruppe auf Basis ermöglichen würden. Wenn der angemeldete Benutzer Teil groupA ist, lassen Sie ihn operationA tun, aber nicht operationB und so weiter und so fort. Jetzt für diese habe ich NetworkCredentials an den Dienst zu übergeben, wieWCF-Dienst mit Active Directory-Authentifizierung

factory.Credentials.Windows.AllowedImpersonationLevel = 
        TokenImpersonationLevel.Identification; 
factory.Credentials.Windows.AllowNtlm = true; 
factory.Credentials.Windows.ClientCredential.username = "username"; 
factory.Credentials.Windows.ClientCredential.password = "pwd"; 
factory.Credentials.Windows.ClientCredential.domain = "mycompany.com"; 

Ich möchte, dass der Benutzer seine Anmeldeinformationen für den Aufruf Servicebetrieb eingeben. Es sollte von Thread.CurrentPrincipal dauern. Kann mir jemand diesbezüglich helfen, wie man Netzwerk-Zugangsdaten weitergibt?

Antwort

2

Warum geben Sie nicht einfach den Sicherheitsmodus als "Windows integrierte" Sicherheit für Ihre Bindung an? Dies ist die Standardeinstellung für die Bindungen net.Tcp und wsHttp - die Windows-Anmeldeinformationen des aktuell angemeldeten Benutzers werden über die Verbindung an den Server gesendet.

Sie müssen diese Anmeldeinformationen nicht wirklich explizit erneut festlegen.

+0

Meinst du ich sollte nur den obigen Code von meinem Client entfernen? Wenn ja, wird das ASPNET-Konto weiterhin als Standardanmeldeinformationen verwendet. Kannst du in irgendeinem Code posten, um mir zu helfen? Danke für die Antwort. – Ashish

+0

AHA - ASP.NET - Sie haben das in Ihrem ursprünglichen POST nicht erwähnt! –

+0

Es hängt davon ab, wie Sie ASP.NET eingerichtet haben. Wenn Sie sich anonym mit Ihrer ASP.NET-Site verbinden, verlieren Sie Ihre Anmeldeinformationen und ASP.NET stellt mit seinen eigenen Anmeldeinformationen eine Verbindung zu Ihrem WCF-Dienst her. Wenn Sie die Windows-Authentifizierung für die ASP.NET-App (im IIS-Manager) eingerichtet haben, sollte es Ihnen gut gehen, denke ich. –