begin process at 2012 05 27 18:33:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

SQL Server

 > 

authentification par formulaire et base sql server


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

authentification par formulaire et base sql server

mercredi 18 août 2010 à 19:46:21 | authentification par formulaire et base sql server

amalouch1

Bonjour tout le monde,
Je suis entrain de développer une application web avec asp.net. J'utilise web developper 2008 et sql server 2005.
Mon problème est :
j'ai fait un formulaire pour l'authentification par formulaire et j'identifie les utilisateurs en se servant d'une base de données Client.
La connexion à la base marche bien mais toujours s'affiche le msg : login ou pwd incorrect
voila mon code :
c'est la fonction qui effectue le test des valeurs saisies et retourne un booléan.
Code C# :
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
        SqlConnection oConnexion = new SqlConnection(@"Data Source=SWEET-BF6C823KF\SQLEXPRESS;Initial Catalog=baseauthen;Integrated Security=True");
        // Définition de la requête à exécuter
        SqlCommand oCommand = new SqlCommand("SELECT * FROM Client WHERE nom='" + strUtilisateur + "'", oConnexion);
        try
        {
            // Ouverture de la connexion et exécution de la requête
            oConnexion.Open();
            SqlDataReader drUtilisateur = oCommand.ExecuteReader();
            // Parcours de la liste des utilisateurs
            while (drUtilisateur.Read())
            {
                if (drUtilisateur["motdepasse"].ToString() == strMotDePasse)
                {
                    bOk = true; 
                    break;
                }
            }
        }
        catch
        {
            bOk = false;
        }
        oConnexion.Close();
        return bOk;
    } 


et lors de click sur btn connexion voila mon code :
Code C# :
protected void ButtonCnx_Click(object sender, EventArgs e)
    {
        if (Authentifier(TextBox1.Text , TextBox2.Text ))
        {
            FormsAuthentication.RedirectFromLoginPage(TextBox1.Text , false);
        }
        else
        {
            lbMessage.Text = "Login ou pwd incorrect !";
        } 
    }


je sais pas pourquoi il ne marche pas.
j'ai besoin de votre aide merci d'avance.
vendredi 20 août 2010 à 10:29:37 | Re : authentification par formulaire et base sql server

Mayzz

Membre Club
Drôle de façon de faire un formulaire d'authentification.

Ajoute simplement une chaine de connexion à ton web.config, un fournisseur de rôles et d'appartenances, puis insère un contrôle login au lieu de te casser la tête avec du code behind. Tu sera obligé d'en passer par la de toute façon.

@+

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
samedi 21 août 2010 à 14:08:08 | Re : authentification par formulaire et base sql server

amalouch1

Merci pour votre réponse
Est ce que vous voulez dire utilisation de l'outil configuration asp.net?
en fait j'ai utilisé cet outil et le controle Login mais ni l'authentification ni l'autorisation marche c'est pour cela que jai recourt au code behind.
est ce que le problème peut être du que IIS n'est pas installé sur mon poste? Mon syst d'exploitation est windows xp service pack3.
Comment faire pour l'installer??
@+
samedi 21 août 2010 à 19:20:08 | Re : authentification par formulaire et base sql server

Mayzz

Membre Club

en fait j'ai utilisé cet outil et le controle Login mais ni l'authentification ni l'autorisation marche c'est pour cela que jai recourt au code behind.



C'est parce que tu as mal configuré l'application.

Il suffit en effet d'utiliser l'outil configuration ASP.Net, d'activer l'authentification par formulaire, de créer des rôles (Facultatif) et de créer au moins un utilisateur pour pouvoir te connecter. Place en suite un Login dans une page vierge et le contrôle login te logera automatiquement. Bien entendu, si tu n'as que ce contrôle sur la feuille alors oui tu ne peux vérifier si tu es connecter ou non. Il te faudra alors placer un LoginView et mettre le texte "Je suis connecté" dans le LoggedIn template. Tu verras apparaitre celui-ci si l'authentification fonctionne.

Lors ce que tu configure la ton application un fournisseur d'appartenance (MembershipProvider) et un fournisseur de rôles (RoleProvider) doivent être définis. Si ce n'est pas le cas les fournisseurs par défaut sont les fournisseurs 'AspNetSqlMembershipProvider' et 'AspNetSqlRoleProvider'.

Ces 'fournisseurs' ne sont autre que des Assembly qui se chargeront de gérer pour toi l'accès aux données et de travailler avec les contrôles de connexion ASP.Net. Il est donc fortement recommandé d'utiliser cette méthode pour éviter de se taper à la main 20% de code en plus. Qui plus est pour éviter aussi les failles de sécurités potentielles.

Les options de ces Assembly peuvent être définies via le Web.config (par exemple pour leur préciser quelle chaine de connexion utiliser, ou la taille des mots de passe ou leur format etc...)

Il est aussi possible, si tu le souhaite, créer de toute pièce des provider pour travailler avec un SGBD spécifique. L'exemple le plus marquant est MySqlProvider qui est un fournisseur de rôle et d'appartenance pour ASP.Net > MySql. Tu peux en trouver le code source sur internet.

Une dernière chose, le fournisseur par défaut te créera une base de données SQL Serveur dans le dossier APP_Data et une chaine de connexion dans le web.config. Il est donc essentiel de posséder une instance de SQL Server (même Express Ed.)
en cours d'exécution sur le PC de développement.

Ma description est un peu longue car je détaille, mais ce que je cite plus haut prend moins d'une minute à réaliser.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
samedi 21 août 2010 à 19:23:16 | Re : authentification par formulaire et base sql server

Mayzz

Membre Club

est ce que le problème peut être du que IIS n'est pas installé sur mon poste? Mon syst d'exploitation est windows xp service pack3.
Comment faire pour l'installer??



Ah j'oubliais, pour IIS c'est pas essentiel, il ne peux s'installer que sur les versions pro de XP (Ajout suppresion de programme/Ajouter ou supprimer des composants Windows).

Si tu possède IIS, tu peux créer un site, l'ajouter à IIS et réouvrir celui-ci dans VS en mode serveur (IIS local).
Dans le cas contraire, créer un site en mode système de fichier et Cassini, un serveur de développement se chargera du reste.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
dimanche 22 août 2010 à 17:31:43 | Re : authentification par formulaire et base sql server

amalouch1

Merci beaucoup pour votre aide et patience.
J'ai fait comme tu m'as dit et l'authentification marche .
J'ai ajouté aussi des roles et des régles d'accés aux répertoires de mon application : rep admin et rep user (de même pour les roles admin et user).
le problème est que aprés authentification il aura redirection tjs à default.aspx est ce que càd que les régles d'accés ne s'éxécute pas ??
je veux par exemple rediriger l'utilisateur admin seulement aux pages du rep admin et je pense qu'aux travers les régles d'accés cela est réalisé.
dimanche 22 août 2010 à 18:54:47 | Re : authentification par formulaire et base sql server

Mayzz

Membre Club

le problème est que aprés authentification il aura redirection tjs à default.aspx est ce que càd que les régles d'accés ne s'éxécute pas ??



Non, les règles d'accès servent à protéger les répertoires. Un role non autorisé n'aura pas l'accès à un répertoire. Si il n'y a pas de règle définie, l'accès est autoriser pour tout le monde, même les non logués.

Mais en aucun cas il ne fait la redirection. C'est à toi de le faire en code behind.

Code Visual Basic :
        Dim user As MembershipUser = Membership.GetUser
        If user Is Nothing Then
            Response.Redirect("~/Default.aspx", True)
        Else
            If Roles.IsUserInRole("Administrateur", user.UserName) Then
                Response.Redirect("/Admins/Default.aspx", True)
            Else
                Response.Redirect("/Users/Default.aspx", True)
            End If
        End If


Maintenant que tu as tes fournisseur, il est très simple de savoir si un utilisateur est connecté, de connaitre sont rôle etc... Pas besoin de DataSet et d'accès aux données. C'est les Instances de provider 'Roles' et 'Membership' qui le font pour toi.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
dimanche 22 août 2010 à 19:51:35 | Re : authentification par formulaire et base sql server

amalouch1

il m'affiche l'erreur suivante :
La référence d'objet n'est pas définie à une instance d'un objet.
if (Roles.IsUserInRole(user.UserName,"admin"))
{
Response.Redirect("~/admin/Admin.aspx");
}
quoi faire ?????
dimanche 22 août 2010 à 20:05:14 | Re : authentification par formulaire et base sql server

Mayzz

Membre Club
T'es C#, c'est vrai...

Code C# :
MembershipUser user = Membership.GetUser;
if (user == null) {
	Response.Redirect("~/Default.aspx", true);
} else {
	if (Roles.IsUserInRole("Administrateur", user.UserName)) {
		Response.Redirect("/Admins/Default.aspx", true);
	} else {
		Response.Redirect("/Users/Default.aspx", true);
	}
}


Tu ne teste pas si le membership est instancié, si c'est le cas c'est qu'un utilisateur est logué. Dans le cas contraire personne. Voila pourquoi tu as une NullReferencEexception.

Essaye de comprendre les codes qu'on te donne, sinon ca ne sert pas à grand chose, je ne serait pas la pour coder le reste de ton application !



Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
lundi 23 août 2010 à 01:53:33 | Re : authentification par formulaire et base sql server

amalouch1

Pardonnez-moi vous avez raison mais j'étais trop fatigué et le temps me presse aussi.
Je vous remercie de tout mon c½ur pour votre aide, j'ai bien avancé dans mon travail.
j'ai honte de te déranger encore mais si vous me répondez je serais reconnaissante : après connexion il m'affiche url de page demandé mais pas son contenu et le contrôle login demeure affiché ???
http://localhost:4883/WebSite16/login.aspx?ReturnUrl=%2fWebSite16%2fadmin%2fAdmin.aspx

1 2

Cette discussion est classée dans : base, code, formulaire, connexion, strmotdepasse


Répondre à ce message

Sujets en rapport avec ce message

Base de donné. Mon code ne marche pas [ par kikim ] Salut tout le monde, j'ai un etit probléme avec ce code.Quand j'essai de l'appliquer j'ai une erreur au niveau de la ligne :Dim TabNom_ASP (RS.RecordC Formulaire asp sous base Access [ par Cento ] Bonjour, J'ai le code suivant (dont je ne suis pas l'auteur) et je dois le modifier. Ce code affiche un formulaire qui lit une base de données access. PROBELEME AUTHENTIFICATION PAR FORMULAIRE VIA UNE BASE DE DONNEES [ par kenza_sana ] Bonjour j'ai un probléme au niveau de l'authentificationpar formulaire avec mot de passe crypté et la vérification se fait dans une base de données... Data Grid [ par GabrielT ] Bonjour, j'ai un petit problème... Voila, j'ai une page pour ajouter des numéro de téléphone a une base de donné et j'ai une autre page pour voir la b formulaire de saisie et bouton radio [ par cowlili ] Bonjour à tous,j'ai un petit soucis: dans mon formulaire, j'ai des boutons radio et je veux récupérer dans la valeur sélectionnée dans ma base de donn connexion asp access [ par hypnos2 ] A l'aide!!!!Tout marchait très bien, je travaillais sur du code ASP en parrallèle à une base de donnée Access quand soudain:ADODB.Connection error '80 Pb recupération valeur de formulaire [ par foudail ] Bonsour,pouvez me dire ce qui cloche?voici mon code.le code du formulaire permettant d'uploader un fichier sur le serveur et de stocker son nom,numero Problème de connexion avec SQL serveur de Micrsoft [ par ronaldo1 ] Voila j'essai de créé une connexion avec SQL serveur avec une petite requête de test mais cele ne foncionne pas.Voici le fichier ASP:%><!--#Include fi IMAGES ET AFFICHAGE [ par kenza_sana ] Bonjour j'ai un code que je vient de récupérer d'un site c'est pour faire l'affichage d'une image car moi je doit faire l'affichage des images et l'in comment ecrire ds une base de donnee??? [ par kojiro ] bonjour je souhaiterais savoir de quel maniere on peut ecrire dans une base de donnee...g donc besoin de code, merci!!voici le code que j'utilise pr m


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales