Accueil > Forum > > > > authentification par formulaire et base sql server
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
|
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
|
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
|
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
|
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
|
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
|
|
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
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|