login à SQL Server à partir de c # avec un autre user Windows Credentials

J'utilise Linq pour SQL à partir de c # pour se connecter au server SQL dans un service WCF. J'utilise l'authentification Windows pour me connecter à la database. Je veux utiliser l'authentification d'autres users Windows pour se connecter au server sql de Linq à sql. Est-ce leur façon de le faire.

À partir des commentaires, je suppose que vous voulez vous connecter à une database de production pendant le développement pendant une courte période, jusqu'à ce que votre count de développement accède à la database.

Tout d'abord, ne faites pas ça. C'est une mauvaise idée pour plusieurs raisons. Travailler avec une database de production est une mauvaise chose. C'est pourquoi vous écrivez du code qui sera supprimé une fois que vous aurez obtenu un access approprié.

Si vous souhaitez uniquement tester votre service, utilisez simplement les informations d'identification du count Windows que vous avez déjà en tant que count de service.

En dernier recours, vous pouvez emprunter l'identité d'un count spécifique en utilisant WindowsIdentity.Impersonate . L'exemple de la fonction montre comment authentifier l'user à l'aide de P / Invoke et de l'API LogonUser Win32. Vous devrez prendre soin d'appeler Undo une fois que vous avez fini d'usurper l'identité sinon votre code continuera à fonctionner avec l'ancienne identité.

Si Kerberos est correctement implémenté dans le domaine et que votre count a l'autorisation d'emprunter l'identité de l'autre count, vous pouvez utiliser le constructor WindowsIdentity qui nécessite uniquement un nom d'user principal. C'est beaucoup plus sûr que de stocker un nom d'user et mot de passe dans un file de configuration, même si vous les crypter.

Une meilleure idée consiste à cloner datatables dont vous avez besoin (tous ou seulement un échantillon) dans une database locale et à les utiliser lors du développement. De cette façon, vous serez libre d'expérimenter sans affecter l'environnement de production (ou vous serez blâmé pour quelque chose de fâcheux).