IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Pb de connexion sql suite utilisation des controls de sécurité


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 97
    Par défaut Pb de connexion sql suite utilisation des controls de sécurité
    Bonjour,

    je suis en train de développer un site avec pour but de ne donner accès que sur login.
    J'utilise donc le control "Login" que j'ai configuré grâce à l'option "administer website" (oui mon VS2005 est en anglais)

    J'ai crée tous les groupes, les rôles, les utilisateurs et ça fonctionne plutôt bien. Je n'ai accès aux différentes pages qu'après m'être identifié.

    Par contre, lorsque je souhaite établir une connexion à une base de donnée SQL (sqlexpress compris dans vs2005), je reçois le message d'erreur suivant :

    Il faut que je précise qu'en mode non sécurisé, cette connexion fonctionne bien.

    D'ailleurs, j'arrive a me connecter a la base via un control SqlDataSource, ... en mode windows!

    Je pense que le problème vient d'un truc du genre : ma connexion à la ddb se fait en mode windows alors que la securité de mon site de fait via une authentification de type "forms".

    Mais étant débutant , je n'arrive pas à voir que faire pour m'en sortir.
    Dit-moi si je me trompe! Il faut établir la connexion à la base via un des comptes que j'utilise pour m'identifier au site. Mais ou sont-ils stockés et comment les utiliser?

    Voici le message d'erreur, merci d'avance à ceux qui me mettrons sur la piste de la connexion

    Tommy.

    PS : je ne savais pas si ce topic était du ressort SQL pur ou de VB.NET

    Cannot open database "Boulangerie" requested by the login. The login failed.
    Login failed for user 'GX700\ASPNET'.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.Data.SqlClient.SqlException: Cannot open database "Boulangerie" requested by the login. The login failed.
    Login failed for user 'GX700\ASPNET'.

    Erreur source:


    Ligne 68 :
    Ligne 69 : ' Connexion à la base de donnée
    Ligne 70 : sqlConn.Open()
    Ligne 71 : ObjetCommand = New SqlCommand(strSql)
    Ligne 72 : ObjetDataAdapter = New SqlDataAdapter(ObjetCommand)


    Fichier source : c:\inetpub\wwwroot\mespatisseries\saisie.aspx.vb Ligne : 70

    Trace de la pile:


    [SqlException (0x80131904): Cannot open database "Boulangerie" requested by the login. The login failed.
    Login failed for user 'GX700\ASPNET'.]
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +739123
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
    System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1956
    System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +33
    System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +170
    System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +349
    System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +181
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +359
    System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +27
    System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +47
    System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
    System.Data.SqlClient.SqlConnection.Open() +111
    Default2.EnregSaisie_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\mespatisseries\saisie.aspx.vb:70
    System.EventHandler.Invoke(Object sender, EventArgs e) +0
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102




    --------------------------------------------------------------------------------
    Informations sur la version : Version Microsoft .NET Framework :2.0.50727.832; Version ASP.NET :2.0.50727.832

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Tommy57 Voir le message
    Dit-moi si je me trompe! Il faut établir la connexion à la base via un des comptes que j'utilise pour m'identifier au site.
    Non, ça n'a rien à voir. Un compte de membre sur ton site n'est pas un compte SQL Server, c'est 2 choses différentes

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 97
    Par défaut
    Donc mon pb de connexion à ma base sql n'est pas lié à la sécurisation du site?

    D'après le log, peux-tu me dire vers ou chercher ou pas?

    J'avoue que je rame un peu là!

    Cordialement,
    Tommy

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ben "login failed", ça veut dire que ton user/password pour te connecter à la base de données a été refusé
    La fait de mettre un login sur le site ne change rien à la façon de se connecter à la base, il faut que tu utilises le même compte SQL Server qu'avant

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 97
    Par défaut
    Bonsoir Tomlev,

    J'ai pris mes paramètres de connexion à ma base de donnée, les ai utilisés dans une page à part, non régie par la sécurité de mon site et cela fonctionne.

    Je me vois dans l'obligation d'insister

    En fait, dans le log, il est question de l'utilisateur 'GX700\ASPNET' donc un profil différent de celui utiliser pour sécuriser la connexion "tommy57" dans mon cas.

    Or pour créer ma connexion, j'ai un control SqlDataSource comme suit :

    Code ASP.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:MaConnectionAmaBase %>"
            SelectCommand="SELECT * FROM [Utilisateurs]">
        </asp:SqlDataSource>

    suivit d'un gridview pour afficher les infos d'une des tables de ma base

    Code ASP.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
        </asp:GridView>

    Et dans mon web.config, j'ai la section suivante (rajoutée automatiquement par le control SqlDataSource au moment du paramétrage de ce dernier) :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<connectionStrings>
      <add name="MaConnectionAmaBase" connectionString="Data Source=GX700\SQLEXPRESS;Initial Catalog=Boulangerie;Integrated Security=True;Pooling=False"
       providerName="System.Data.SqlClient" />
     </connectionStrings>
    Au moment de paramétrer le conrol SqlDataSource il est possible de tester la requête et elle fonctionne.

    Il ne me reste plus qu'à déduire que les 2 sont liés, mais d'ou peu venir le problème si tu as raison?

    Faut-il faire attention à autre chose?

    D'avance merci pour l'aide que vous pourrez m'apporter sur ce problème

    Cordialement,
    Tommy

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Décidément je comprends rien à ton histoire : d'où il sort l'utilisateur 'GX700\ASPNET' ? Tu l'as spécifié explicitement quelque part ?

    Si je comprends bien les SqlDataSource fonctionnent, mais pas les connexions "explicites" (genre sqlConn.Open) ? Dans ce cas je ne vois pas le rapport avec la mise en place du MemberShip... La variable sqlConn dans ton code, tu l'initialises avec quelle chaine de connexion ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 97
    Par défaut
    Très bonne question, ce 'GX700\ASPNET' me harcèle depuis que j'essai de faire maconnexion spl et que j'utilise le membership.

    En fait, mon code est tout ce qu'il y a de plus simple pour l'instant. J'ai pris un control SqlDataSource que je configure grâce aux automatisme proposé par l'assistant.
    J'utilise ensuite un Gridview dans lequel je viens afficher le résultat de ma connexion

    Concernant le membership, je l'ai également configuré grace à l'assistant de configuration. Et ça à l'air de bien fonctionner car tant que je ne me suis pas identifié, je suis automatiquement redirigé vers la page login.

    Au moment de l'identification, je reçois ce message d'erreur lorsque mes 2 controls SqlDataSource et Gridview sont actifs. Et c'est à ce moment qu'il me parle du user 'GX700\ASPNET'.
    GX700 étant le nom de mon poste et ASPNET, ???

    Donc pour l'instant, aucune ligne de code spécifique du genre sqlConn.Open

    Bizarre hein!

    Merci,
    Thierry.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Tommy57 Voir le message
    Donc pour l'instant, aucune ligne de code spécifique du genre sqlConn.Open
    Euh... t'es sûr ??

    Erreur source:


    Ligne 68 :
    Ligne 69 : ' Connexion à la base de donnée
    Ligne 70 : sqlConn.Open()
    Ligne 71 : ObjetCommand = New SqlCommand(strSql)
    Ligne 72 : ObjetDataAdapter = New SqlDataAdapter(ObjetCommand)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 97
    Par défaut
    Oui, et voici le nouveau message d'erreur.

    En fait, j'avais recopié les lignes de code d'un autre projet.
    Mais pour simplifier au max et trouver plus rapidement l'erreur, j'ai tout mis en commentaire et je teste maintenant plus qu'avec les 2 controls, SqlDataSource et Gridview.

    Voici le message d'erreur actuel, tout chaud encore. Je viens de le sortir du four

    Cannot open database "Boulangerie" requested by the login. The login failed.
    Login failed for user 'GX700\ASPNET'.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.Data.SqlClient.SqlException: Cannot open database "Boulangerie" requested by the login. The login failed.
    Login failed for user 'GX700\ASPNET'.

    Erreur source:

    Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

    Trace de la pile:


    [SqlException (0x80131904): Cannot open database "Boulangerie" requested by the login. The login failed.
    Login failed for user 'GX700\ASPNET'.]
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +739123
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
    System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1956
    System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +33
    System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +170
    System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +349
    System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +181
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +359
    System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +27
    System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +47
    System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
    System.Data.SqlClient.SqlConnection.Open() +111
    System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +121
    System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +137
    System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +83
    System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1770
    System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
    System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
    System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
    System.Web.UI.WebControls.GridView.DataBind() +4
    System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
    System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
    System.Web.UI.Control.EnsureChildControls() +87
    System.Web.UI.Control.PreRenderRecursiveInternal() +41
    System.Web.UI.Control.PreRenderRecursiveInternal() +161
    System.Web.UI.Control.PreRenderRecursiveInternal() +161
    System.Web.UI.Control.PreRenderRecursiveInternal() +161
    System.Web.UI.Control.PreRenderRecursiveInternal() +161
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ah ok...
    GX700\ASPNET, c'est le user windows qui exécute ASP.NET, et qui est utilisé pour se connecter à la base (Integrated Security=True)
    Vérifie qu'il a les droits pour se connecter à Sql Server

    Sinon je vois pas trop ce qui cloche, mes connaissances en ASP.NET étant un peu limitées...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 97
    Par défaut
    Ok, sur mon poste j'ai SQLExpress, fourni avec VS2005. Je ne vois pas ou donner les droits nécessaires. Est-ce faisable dans cette version?

    Mais avant de faire des modifs, comment se fait-il que lorsque je n'utilise pas le membership, cela fonctionne sans droit supplémentaires? Integrated Security n'a pas la même valeur?

    N'y-a-t'il pas tout de même un rapport avec la sécurisation du site?

    Bon ap,
    Tommy

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    aucune idée...

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 97
    Par défaut
    bon, je vais soumettre le problème dans le forum SQL, peut-être un spécialiste aura une idée.

    En tout cas, merci Tomlev de m'avoir accordé du temps pour essayé de résoudre mon problème

    @+,
    Tommy

Discussions similaires

  1. [Framework] Utilisation des Controllers/managers/Daos
    Par libuma dans le forum Spring
    Réponses: 10
    Dernier message: 31/01/2011, 10h40
  2. Réponses: 6
    Dernier message: 25/01/2011, 17h01
  3. Utiliser des controls créés dynamiquement
    Par abonnefoy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/11/2010, 21h56
  4. [AC-2000] Syntaxe ds SQL qui utilise des variables
    Par bruno28 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/12/2009, 10h14
  5. Réponses: 8
    Dernier message: 06/02/2009, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo