roura85
Messages postés10Date d'inscriptionsamedi 4 août 2007StatutMembreDernière intervention10 mai 2008
-
22 mars 2008 à 14:21
roura85
Messages postés10Date d'inscriptionsamedi 4 août 2007StatutMembreDernière intervention10 mai 2008
-
24 mars 2008 à 14:57
bonjour,
j'ai cree un web service avec visual studio 2005 en c# ainsi qu'une page "identif.aspx" dans laquelle un utilisateur introduit son log et son mot de pass ensuite clique sur un boutton qui se chargera de l'appel au web service et presicement a la methode Authentif dans laquelle le web service se connecte a la base de donnee test a la table User.dbo (sql server 2005) qui contient 3 champs: Login ,Pass ,genre.
en fait mon probleme c'est que la connexion ne fonctionne et ce message d'erreur s'affiche:
System.Data.SqlClient.SqlException: Impossible d'ouvrir la base de données "test" demandée par la connexion. La connexion a échoué.
Échec de l'ouverture de session de l'utilisateur 'ROURA-B76A4CD22\ASPNET'.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at StatesInformation.Authentifier(String log, String pass) in c:\StatesInfoWS\App_Code\StatesInformation.cs:line 62
encore une question je veux recuperer la valeur du champ genre de la table User car selon le type d'utilisateur apres authentification cela lui conduit a une autre page.aspx qui le concerne.
Merci pour votre aide.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 22 mars 2008 à 15:05
Salut,
C'est peut etre ta chaine de connexion qui est mal faite
Pour faire une bonne chaine de connexion
Utilise Visual studio et tu utilise la fenetre explorateur de serveur
tu ajoutes ta base de données
ensuite tu te connectes dessus
tu selectionne la base
et tu recuperes la connection string dans la fenetre de propriété
Tu la colles dans l'attribut connection string de to nweb.config
ou à la place de la chaine de connection.
roura85
Messages postés10Date d'inscriptionsamedi 4 août 2007StatutMembreDernière intervention10 mai 2008 22 mars 2008 à 23:17
bonsoir,
merci nhervagault ainsi que waguila666 pour etre aussi rapide pour me repondre.
En fait j'ai verifie ma chaine de connection et elle est correcte j'ai suivi a la lettre ce que tu m'a dit nhervagault concernant la verification des services de sql server je ne sais pas comment les faire???
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 22 mars 2008 à 23:41
Salut,
"Data Source= ROURA-B76A4CD22;Initial Catalog=test1; Integrated Security=True "
=> sauf s'il y a emprunt d'identité, c'est le compte utilisé pour faire tourner le worker process qui sera utilisé, d'où l'envoi de ROURA-B76A4CD22\ASPNET comme le dit le message d'erreur.
SqlCommand commande = new SqlCommand ( "SELECT * from dbo.User WHERE Login='" + log + "' and Pass='" + pass + "'" , connect);
> dans un sens heureusement que ça ne fonctionne pas > voir l'injection SQL et les requêtes paramétrées
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 22 mars 2008 à 23:49
Sans passer par une webmethod est ce que ca fonctionne déjà,
est-ce que la connection fonctionne autrement, apparition des tables dans l'explorateur de server
et ensuite test de la connexion pour alimenté une table simple
exemple SELECT * from dbo.User
de plus evite les chaines de requetes faites à la main par concaténation
utilise les requetes paramétrer
1-> plus de sécurité (pas d'injection SQL) exemple avec select * from dbo.user where login " toto" -- "and password 12313
on se connecte a ton site pas tres secure car le password est ignoré
et apres on peut aller plus loinselect * from dbo.user where login " toto";delete from user; -- "and password 12313
et hop plus de user
2-> plus de performance car ce mette dans le cache de sql server
3-> controle des type plus poussé (pas besoin de double quoter les ' dans les chaines de caracteres
4-> et gain de performance dans la construction de la chaine car string est immuable (recopie de string a chaque +) ce qui n'est pas le cas avec les requetes paramétré
waguila666
Messages postés23Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention23 mai 2008 23 mars 2008 à 01:24
Hi,
using (
SqlConnection connect =
new
SqlConnection(
"Data Source=ROURA-B76A4CD22;Initial Catalog=test1;Integrated Security=True"))
tu doit specifier l'instace sql server
par exemple
using (
SqlConnection connect =
new
SqlConnection(
"Data Source=ROURA-B76A4CD22\sqlserverexpress;Initial Catalog=test1;Integrated Security=True"))
et pour verifier le nom de l'instance utilise sql managment studio et avant de te logué a la base de donné ca doit apparaitre dans le champs "nom du serveur " c ca que tu doit mettre
roura85
Messages postés10Date d'inscriptionsamedi 4 août 2007StatutMembreDernière intervention10 mai 2008 24 mars 2008 à 14:57
bonjour,
en fait mon probleme se trouve dans la connexion a la base, j'arrive pas a ma connecter.
j'ai verifie dans l'explorateur de serveur en visual studio ma connexion a ma base qui fonctionne bien, concernant la requete que j'ai cree je ne sais pas si elle fonctionne puisque j'arrive pas a me connecter.
Dans ma requete j'ai besoin d'introduire le log et le pass pour avoir non l'identification des utilisateurs mais aussi la valeur du champ "genre" dans ma table car chaque type d'utilisateur sera dirige a une page bien precise a lui.