Simuler un run as

cedricperes Messages postés 38 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 décembre 2008 - 30 mai 2007 à 12:35
cedricperes Messages postés 38 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 décembre 2008 - 13 juin 2007 à 09:51
Bonjour

J'ai realise une appli .net c# qui doit se connecter a une base sql. Pour cette connection, un user a ete cree : "sqlUser" qui a les droits necessaires pour se connecter au serveur sql.
Quand je lance visual studio en Run As avec l'utilisateur sqlUser, j'arrive a me connecter au serveur sql avec la chaine de connection "Data Source=servername;Initial Catalog=database;Integrated Security=True;"

quand je lance mon appli en utilisant ma session et en utilisant la chaine de connection

"Data Source=servername;Initial Catalog=database;User Id=sqlUser;Password=pwd;" j'obtiens l'erreur
Login failed for user 'userid'. The user is not associated with a trusted SQL Server connection.

Je sais que l'on peut resoudre ce probleme en modifiant l'Authentication Mode du serveur sql en mixed mode.
Mais est-ce qu'il est possible, quand on fait un SqlConnection.Open(), de faire un genre de Run As pour le sqlUser ?

Merci

Cedric

7 réponses

gldfdp Messages postés 90 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 21 février 2008
30 mai 2007 à 14:17
En essayant de rajouter Integrated Security=True dans ta chaîne de connection (la deuxième)?
0
cedricperes Messages postés 38 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 décembre 2008
30 mai 2007 à 16:02
j'ai deja essaye, quand je rajoute Integrated Security=True, la connection n'utilise plus User Id=sqlUser mais mes propres parametres. J'ai alors l'erreur suivante :
Login failed for user 'cedricperes'. parce que je n'ai pas les droits d'acces necessaires (c'est sqlUser qui les a)

Cedric
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
30 mai 2007 à 22:45
Salut,

Tu peux tenter de faire un impersonate (faits une recherche goole sur impersonate).

Cela permet d'exécuter un bout de code sous un autre user... mais je ne te garantis pas le succès car je sais qu'il y a des problèmes (ilfaut donner des privilèges "dangereux" au process., double hop, config du serveurs, ne fonctionne pas sur toutes les versions windows,... ...).

Voici un lien (en anglais)
http://www.netomatix.com/ImpersonateUser.aspx

yopyop
0
gldfdp Messages postés 90 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 21 février 2008
31 mai 2007 à 09:25
Sinon essaie de changer un temps l'utilisateur. Exemple donné par la msdn:

// Create generic identity.
GenericIdentity MyIdentity = new GenericIdentity("MyIdentity");

// Create generic principal.
String[] MyStringArray = {"Manager", "Teller"};
GenericPrincipal MyPrincipal =
new GenericPrincipal(MyIdentity, MyStringArray);

// Attach the principal to the current thread.
// This is not required unless repeated validation must occur,
// other code in your application must validate, or the
// PrincipalPermisson object is used.
Thread.CurrentPrincipal = MyPrincipal;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cedricperes Messages postés 38 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 décembre 2008
1 juin 2007 à 11:48
Merci pour vos reponses. Je n'est pas encore trouver de solution mais je pense que je vais revoir la config de mon serveur. Je vous le signalerai quand j'aurai resolu mon probleme.

Cedric
0
cdv07 Messages postés 1 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 1 juin 2007
1 juin 2007 à 23:41
Bonjour Cédric,

Le problème semble bien venir d'un problème d'authentification entre ton serveur WEB et ton serveur SQL serveur.

Deux liens parlant (je pense de ton problème) et la solution.
http://aspnet101.com/aspnet101/tutorials.aspx?id=23
http://weblogs.asp.net/achang/archive/2004/04/15/113866.aspx

Tiens nous au courant.

Anthony
0
cedricperes Messages postés 38 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 décembre 2008
13 juin 2007 à 09:51
Bonjour
   Le probleme est resolu. On a rajoute dans le web.config :<

identityimpersonate="
true"
/>

On a ensuite cree un utilisateur sql avec lequel on se connecte a la base et ca fonctionne.
Merci pour votre aide.

Cedric
0
Rejoignez-nous