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

ASP.NET Discussion :

[C#] Authentification


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut [C#] Authentification
    Bonjour,
    Voila. J'ai essayé de suivre le tutoriel vu dans http://dotnet.developpez.com/tutorie...hentification/ pour créer une authentification de mon application mais en version Oracle. Seulement ca marche pas. il n'y pas de message d'erreur mais la valeur du booléen Authentifier retourne toujours false je crois. Qui sait ou il y a l'erreur et qui est bien gentil de m'aider s'il vous plait?
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Web.Security;
    using System.Data.SqlClient;
    using Oracle.DataAccess.Client;
     
     
    namespace Rindra
    {
    	/// <summary>
    	/// Summary description for Authentification.
    	/// </summary>
    	public class Authentification : System.Web.UI.Page
    	{
    		protected System.Web.UI.WebControls.Button BtOk;
    		protected System.Web.UI.WebControls.TextBox txtUser;
    		protected System.Web.UI.WebControls.Label lbMessage;
    		protected System.Web.UI.WebControls.TextBox txtMdp;
    		protected System.Web.UI.WebControls.DropDownList selectEspace;
    		protected System.Web.UI.WebControls.Button BtAnnuler;
     
    		private void Page_Load(object sender, System.EventArgs e)
    		{
    			// Put user code to initialize the page here
    		}
     
    		#region Web Form Designer generated code
    		override protected void OnInit(EventArgs e)
    		{
    			//
    			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
    			//
    			InitializeComponent();
    			base.OnInit(e);
    		}
     
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method with the code editor.
    		/// </summary>
    		private void InitializeComponent()
    		{    
    			this.BtOk.Click += new System.EventHandler(this.BtOk_Click);
    			this.Load += new System.EventHandler(this.Page_Load);
     
    		}
    		#endregion
     
    		private void BtOk_Click(object sender, System.EventArgs e)
    		{
    			if (Authentifier(txtUser.Text,txtMdp.Text))
    			{
    				FormsAuthentication.RedirectFromLoginPage(txtUser.Text,false );
     
    			}
    			else
    			{   
    				lbMessage.Text ="erreur";
    			} 
    		}
    		//authentification
    		private bool Authentifier(string strUtilisateur, string strMotDePasse)
    		{
    			bool bOk=false ;
    			// Cryptage du mot de passe
    			strMotDePasse = FormsAuthentication.HashPasswordForStoringInConfigFile(strMotDePasse,"MD5");
    			// Création d'une connexion SGBD
    			OracleConnection OConnexion=new OracleConnection();
    			OConnexion.ConnectionString="Data Source=216;User ID=gip;Password=gippig";
    			// Définition de la requête à exécuter
    			OracleCommand cmd = new OracleCommand("SELECT * FROM GIP_UTILISATEUR WHERE UTIL_NOM='" + strUtilisateur+ "'");
    			try
    			{
    				// Ouverture de la connexion et exécution de la requête
    				OConnexion.Open();
    				OracleDataReader drUtilisateur = cmd.ExecuteReader();
    				// Parcours de la liste des utilisateurs
    				while (drUtilisateur.Read())
    				{
    					if (drUtilisateur["UTIL_PASSWORD"].ToString() == strMotDePasse)
    					{
    						bOk = true; break ;
     
    					}
    				}
     
    			}
    			catch
    			{
    				bOk = false;
    			}
    			OConnexion.Close();
    			return bOk;
     
    		}
     
    			}
    }

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Ca te retourne false et t'as pas d'erreur car t'as mis un Try Catch sans intercepter l'exception. Interceptes là et tu connaitras le pb

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    bonjour et merci de ta réponse.
    j'ai essayé d'intercepter par les try/catch comme suit, je sais pas si c'est valable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Web.Security;
    using System.Data.SqlClient;
    using Oracle.DataAccess.Client;
     
     
    namespace Rindra
    {
    	/// <summary>
    	/// Summary description for Authentification.
    	/// </summary>
    	public class Authentification : System.Web.UI.Page
    	{
    		protected System.Web.UI.WebControls.Button BtOk;
    		protected System.Web.UI.WebControls.TextBox txtUser;
    		protected System.Web.UI.WebControls.Label lbMessage;
     
    		protected System.Web.UI.WebControls.TextBox txtMdp;
    		protected System.Web.UI.WebControls.DropDownList selectEspace;
    		protected System.Web.UI.WebControls.Label lbMessage1;
    		protected System.Web.UI.WebControls.Button BtAnnuler;
     
    		private void Page_Load(object sender, System.EventArgs e)
    		{
    			// Put user code to initialize the page here
    		}
     
    		#region Web Form Designer generated code
    		override protected void OnInit(EventArgs e)
    		{
    			//
    			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
    			//
    			InitializeComponent();
    			base.OnInit(e);
    		}
     
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method with the code editor.
    		/// </summary>
    		private void InitializeComponent()
    		{    
    			this.BtOk.Click += new System.EventHandler(this.BtOk_Click);
    			this.Load += new System.EventHandler(this.Page_Load);
     
    		}
    		#endregion
     
    		private void BtOk_Click(object sender, System.EventArgs e)
    		{
    			try
    			{
    				if (Authentifier(txtUser.Text,txtMdp.Text))
    				{
    					FormsAuthentication.RedirectFromLoginPage(txtUser.Text,false );
    				}
    				else
    				{   
    					lbMessage.Text ="erreur";
    				} 
    			}
    			catch
    			{
    				lbMessage1.Text="erreur1";
    			}
     
    			}
    		//authentification
    		private bool Authentifier(string strUtilisateur, string strMotDePasse)
    		{
    			bool bOk=false ;
    			// Cryptage du mot de passe
    			strMotDePasse = FormsAuthentication.HashPasswordForStoringInConfigFile(strMotDePasse,"MD5");
    			// Création d'une connexion SGBD
    			OracleConnection OConnexion=new OracleConnection();
    			OConnexion.ConnectionString="Data Source=216;User ID=gip;Password=gippig";
    			// Définition de la requête à exécuter
    			OracleCommand cmd = new OracleCommand("SELECT * FROM GIP_UTILISATEUR WHERE UTIL_NOM='" + strUtilisateur+ "'");
     
    				try
    				{
    					// Ouverture de la connexion et exécution de la requête
    					OConnexion.Open();
    				}
    				catch
    				{
    					lbMessage1.Text="erreur de connexion";
    				}
    				try
    				{
    					OracleDataReader drUtilisateur =cmd.ExecuteReader();
    					// Parcours de la liste des utilisateurs
    					while (drUtilisateur.Read())
    					{
    						if (drUtilisateur["UTIL_PASSWORD"].ToString() == strMotDePasse)
    						{
    							bOk = true; break ;
    						}
    						else
    						{
    							bOk = false;
    						}
    					}
    				}		
    			catch
    			{
    				lbMessage1.Text="erreur dans la liste des utilisateurs";
    				bOk=false;
    			}
    			OConnexion.Close();
    			return bOk;
    		}
    			}
    }
    l'erreur se trouve peut etre à ce niveau parce que ca retourne "erreur dans la liste des utilisateurs"??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    try
    				{
    					OracleDataReader drUtilisateur =cmd.ExecuteReader();
    					// Parcours de la liste des utilisateurs
    					while (drUtilisateur.Read())
    					{
    						if (drUtilisateur["UTIL_PASSWORD"].ToString() == strMotDePasse)
    						{
    							bOk = true; break ;
    						}
    						else
    						{
    							bOk = false;
    						}
    					}
    				}		
    			catch
    			{
    				lbMessage1.Text="erreur dans la liste des utilisateurs";
    				bOk=false;
    			}
    Edit: balises |code| ajoutées par neguib

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Je connais pas la syntaxe C# dc je te donne en VB.NET

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Try
    ...
    ...
    Catch ex as Exception
    lblMessage1.text = ex.toString
    End Try

    Mets ça en C# pour avoir le détail de l'exception levée

    Edit: balises |code| ajoutées par neguib

  5. #5
    Membre confirmé Avatar de boleduch
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Par défaut
    Hello,

    Je pense que lutecefalco pensait plutot a qqch comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try
    {
    ...
    }
    catch ( Exception ex )
    {
     
       lblMessage1.Text = ex.Message ;
     
    }
    Ah grillé, mais comme ca t'as la sytaxe en C#

  6. #6
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    et l'erreur est:
    System.InvalidOperationException: Operation is not valid due to the current state of the object. at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader() at Rindra.Authentification.Authentifier(String strUtilisateur, String strMotDePasse) in c:\rindra\fo\authentification.aspx.cs:line 101

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Est- ce que tu te connectes bien à la BdD??
    Modifies ton code pour le savoir car là c'est pas possible

  8. #8
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    franchement je sais pas quoi toucher à mon code. le data source est bien correcte et le user id et le password aussi.
    quoi d'autre pour le savoir?

  9. #9
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    finalement j'ai trouvé l'erreur. C'est au niveau du criptage de mot de passe.
    Quand je le passe en commentaire, ca marche. Reste à trouver l'erreur sur cette ligne alors!! qui sait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Cryptage du mot de passe
    		/*	strMotDePasse = FormsAuthentication.HashPasswordForStoringInConfigFile(strMotDePasse,"MD5");*/

  10. #10
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Comme dit précédemment, capture l'exception levée

  11. #11
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    ca yest, j'ai trouvé le probleme. Au fait ,ce qui n'allait pas c'est que le mot de passe dans ma base de données n'était pas encore criptée alors impossible de la comparer à strutilisateur...
    Merci beaucoup à lutecefalco et a boleduch et aussi à ceux qui s'y sont penchés...
    A plus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TIdSMTP] Envoi d'un mail avec authentification ?
    Par BACUS dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2004, 16h18
  2. [C#] Authentification sur les fichiers Pdf
    Par ensisoft dans le forum ASP.NET
    Réponses: 14
    Dernier message: 04/05/2004, 12h10
  3. [Débutant]Classe d'Authentification : compilation impossible
    Par acyclique dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/08/2003, 19h42
  4. Authentification Sécurisée
    Par HPJ dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 23/06/2003, 10h45
  5. [POSTGRES] pb configuration authentification
    Par Fyna dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/06/2003, 19h16

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