2017-05-25 5 views
0

J'ai écrit un service Windows qui se connecte à un serveur SQL Server (2014 dans ce cas) en utilisant l'authentification Windows avec les informations d'identification reçues de l'utilisateur. Pour ce faire, j'utilise l'usurpation d'identité, en particulier la pépite d'emprunt d'identité simple.L'usurpation d'identité Windows ne parvient pas à se connecter à SQL Server sur le cloud

Sur mon environnement local (Windows 10) et sur d'autres environnements locaux, cela semble fonctionner correctement, mais une fois que j'essaie de le tester dans Google Cloud (Windows Server 2012 R2), j'obtiens une exception d'échec de connexion pour l'utilisateur. essayait d'usurper l'identité, ce qui pourrait suggérer qu'il y a un problème que je ne peux pas trouver avec le mot de passe. J'utilise le même utilisateur et le même mot de passe que celui que j'utilise pour me connecter via RDP au serveur. Lors de l'utilisation de SSMS pour se connecter à la même base de données avec cette authentification utilisateur Windows fonctionne.

Est-ce que quelqu'un a une idée de ce qui ne va pas? L'authentification Windows est-elle différente sur le cloud ou sur le serveur Windows?

var sql = "select 1"; 

using (Impersonation.LogonUser(domain, userName, password, LogonType.Interactive))  
using(var con = new SqlConnection(connectionString)) 
{ 
    con.Open(); 
    var cmd = new SqlCommand(sql, con); 
    cmd.ExecuteNonQuery(); 
} 

Merci

Répondre

0

Il était un problème de sécurité. Comme un utilisateur différent a installé la base de données, une connexion n'a pas été créée pour mon utilisateur, et puisque c'est sur le nuage et pas sur notre domaine, je ne suis pas non plus un utilisateur intégré. Créer une connexion l'a corrigé, évidemment. Je me sens stupide