begin process at 2012 02 14 04:09:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > ASP.NET - FORCER LE PASSAGE PAR UNE PAGE D'IDENTIFICATION AVANT L'ENTRÉE SUR LE SITE ASP.NET

ASP.NET - FORCER LE PASSAGE PAR UNE PAGE D'IDENTIFICATION AVANT L'ENTRÉE SUR LE SITE ASP.NET


 Information sur la source

Note :
1,5 / 10 - par 2 personnes
1,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ASP.Net Source .NET ( DotNet ) Niveau :Initié Date de création :18/09/2002 Date de mise à jour :21/05/2003 11:01:53 Vu :20 709

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (25)
Ajouter un commentaire et/ou une note


 Description

Cet exemple est une des trois possibilités d'authentification prévue sur ASP.NET, ainsi nous verrons dans cet exemple la plus classique sur Internet, l'authentification par formulaire simple (Login/Pass).
Ceci se fait par le paramétrage du fichier WEB.CONFIG, et la création d'un fichier d'identification (login.aspx).  

Source

  • ' ------ Dans web.config -----------
  • <authentication mode="Forms">
  • <forms name=".ASPXUSERDEMO" loginUrl="login.aspx" protection="All" timeout="60" />
  • </authentication>
  • ' Oblige le passage par la page login.aspx pour s'identifier lors de l'arrivée sur toutes les pages du projet
  • <authorization>
  • <deny users="?" />
  • <allow users="*" />
  • </authorization>
  • ' Autorisation a tous les utilisateurs identifiés, interdiction au non connus
  • ' -------- Page Login.aspx ------------
  • <form method="post" runat="server">
  • <table cellSpacing="0" cellPadding="2" align="center" border="0">
  • <TR><TD>Login :</TD>
  • <TD><asp:textbox id="login" runat="server"></asp:textbox></TD>
  • </TR>
  • <TR><TD><DIV align="center">Mot de Passe :</DIV></TD>
  • <TD><asp:textbox id="pass" runat="server" TextMode="Password"></asp:textbox></TD>
  • </TR>
  • </table><br><br>
  • <asp:button id="Button1" runat="server" Text="Envoyer"></asp:button>
  • <P><P><P><asp:label id="Label1" runat="server"></asp:label></P>
  • </FORM>
  • ' --------Page Login.aspx.vb ---------------
  • Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  • ' Vérification de l'authentification
  • Dim ODBCConnSite As String = "films"
  • Dim TmpReaderType As OdbcDataReader
  • Dim SQL As String = "Select * FROM password WHERE password.login='" & login.Text & "' AND password.pass='" & pass.Text & "'"
  • TmpReaderType = MyODBCReader(SQL, ODBCConnSite)
  • If TmpReaderType.Read Then
  • FormsAuthentication.RedirectFromLoginPage(login.Text, False)
  • Else
  • Label1.Text = "Les éléments fournis ne permettent pas de vous authentifier."
  • End If
  • End Sub
  • ' Cet exemple s'appuie sur une requette lancée sur une table et dont le résultat est un Datareader, ainsi si on peut lire ce reader (TmpReaderType.Read) rendra TRUE et validera l'authetification. A l'inverse elle restera sur cette même page et affichera le texte dans le label.
' ------ Dans web.config -----------

<authentication mode="Forms">
  <forms name=".ASPXUSERDEMO" loginUrl="login.aspx" protection="All" timeout="60" />
</authentication>
' Oblige le passage par la page login.aspx pour s'identifier lors de l'arrivée sur toutes les pages du projet

<authorization>
 <deny users="?" />
 <allow users="*" />
</authorization>
' Autorisation a tous les utilisateurs identifiés, interdiction au non connus

' -------- Page Login.aspx ------------

<form method="post" runat="server">
<table cellSpacing="0" cellPadding="2" align="center" border="0">
<TR><TD>Login :</TD>
<TD><asp:textbox id="login" runat="server"></asp:textbox></TD>
</TR>
<TR><TD><DIV align="center">Mot de Passe :</DIV></TD>
<TD><asp:textbox id="pass" runat="server" TextMode="Password"></asp:textbox></TD>
</TR>
</table><br><br>
<asp:button id="Button1" runat="server" Text="Envoyer"></asp:button>
<P><P><P><asp:label id="Label1" runat="server"></asp:label></P>
</FORM>

' --------Page Login.aspx.vb ---------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 ' Vérification de l'authentification
 Dim ODBCConnSite As String = "films"
 Dim TmpReaderType As OdbcDataReader
 Dim SQL As String = "Select * FROM password WHERE password.login='" & login.Text & "' AND password.pass='" & pass.Text & "'"

  TmpReaderType = MyODBCReader(SQL, ODBCConnSite)
  If TmpReaderType.Read Then
    FormsAuthentication.RedirectFromLoginPage(login.Text, False)
  Else
    Label1.Text = "Les éléments fournis ne permettent pas de vous authentifier."
  End If
End Sub

' Cet exemple s'appuie sur une requette lancée sur une table et dont le résultat est un Datareader, ainsi si on peut lire ce reader (TmpReaderType.Read) rendra TRUE et validera l'authetification. A l'inverse elle restera sur cette même page et affichera le texte dans le label.
   

 Conclusion

Pour une présentation rapide des autre méthodes d'authentification :
    http://samples.gotdotnet.com/quickstart/aspplus/

PS: afin d'utiliser la fonction de requettage sur la base des Login/Mdp, voyez ici :
- http://www.asp-php.net/scripts/asp.net/lib_class_m ysql.php

Bon développement

Romelard Fabrice (Alias F___)


 Sources du même auteur

Source .NET (Dotnet) SHAREPOINT 2007 - OBTENIR LA LISTE DES WEBPARTS DANS UNE PAG...
Source .NET (Dotnet) SHAREPOINT 2007 - OBTERNIR LA LISTE DES FEATURES D'UN SITE
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES COLLATIONS SHAREPOINT...
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES LANGUES INSTALLÉES DA...
Source .NET (Dotnet) C# - FONCTION TRÈS SIMPLE POUR ENVOYER UN MAIL VIA SMTP

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GUESTBOOK AVEC GRIDVIEW par DanMor498
Source avec Zip CHECKED DROPDOWNLIST par fredzool
Source avec Zip Source avec une capture Source .NET (Dotnet) GRIDVIEW WITH TREEVIEW AND CALLBACK par fredzool
Source avec Zip APPELLER UN WEBSERVICE DEPUIS JAVASCRIPT par fredzool
Source avec Zip Source .NET (Dotnet) MONEY TEXTBOX WITH EMBEDED JAVASCRIPT par fredzool

Commentaires et avis

Commentaire de Tylvalen le 04/12/2002 12:59:12

Salut,
juste une question : tu ne ferme pas ta connection à la base ?

Commentaire de fabrice69 le 04/12/2002 13:42:07 administrateur CS

Si il vaut mieu meme si le framework s'en occupe.
Le script ci-dessus est juste un exemple, à vous de l'adapter à votre cas (couche d'acces au données particulières, ...).

F___

Commentaire de marloon le 18/02/2003 13:11:30

Salut,

j'essaie depuis plusieurs jours de mettre cette source en pratique mais le compilateur me renvoie toujours ce message, je ne comprends pas pourquoi.
Quelqu'un peu m'aider ?
Merci .

Compiler Error Message: BC30001: Statement is not valid in a namespace.

Source Error:



Line 1:  
Line 2:  
Line 3:  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Line 4:  ' Vérification de l'authentification
Line 5:  Dim ODBCConnSite As String = "bd"

Commentaire de fabrice69 le 18/02/2003 13:47:22 administrateur CS

Il faut installer le module ODBC pour .NET
Cf le site de MS &gt; ODBC.NET

http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/668/msdncompositedoc.xml

F___

Commentaire de BlackGoddess le 17/07/2003 12:27:23

super, ta source m'a bien aidé :)

comment fait-on pour changer la page par defaut apres la redirection ? (default.aspx)

^

Commentaire de marloon le 17/07/2003 13:03:32

D'aprés moi tu peux pas avec cette authentification car elle te ramêne direct à la page que tu a demandé en premier même si c pas default.aspx.
Toutes les pages du repertoire sont ainsi protégées(grace au web.config). Il est possible de paramétrer le "protection="All"" mais je ne sais pas comment.
Fabrice t'en diras certainement +.

Commentaire de BlackGoddess le 17/07/2003 14:03:08

-&gt; elle me ramene direct a la page que j'ai demandé en 1er, sauf s'il n'y a pas de page demandé en 1er, dans ce cas elle redirige vers default.aspx, c ca que je voudrais changer

Commentaire de fabrice69 le 17/07/2003 14:50:29 administrateur CS

Ben pour ca c'est avec IIS que tu parametres la page d'entrée, pas avec le login.aspx

L'authentification ne fait que valider (lors de l'arrivée sur une des pages du site, défaut ou non) que tu sois autorisé à y entrer.

Pour la définition de la page d'accueil, ca se passe sur les propriétés ton application WEB (via IIS).

F___

Commentaire de BlackGoddess le 17/07/2003 17:44:10

ok.

sinon, je voudrais sauver le nom de l'utilisateur pour la session.
je fais donc Session.Add("UserName", UserName);

le pb est que j'ai permis les cookies :
FormsAuthentication.RedirectFromLoginPage(UserName, chkSave.Checked);

et, lorsque l'utilisateur a choisi de ne plus avoir a taper son passe, il ne passe plus par la page login.aspx, donc je ne sais pas comment récupérer le UserName ?!

Commentaire de marloon le 17/07/2003 18:02:17

page.user.identity.name

Voilou !!

Commentaire de BlackGoddess le 18/07/2003 09:55:30

mmh ... depuis hier je n'arrive pas a l'utiliser page.user.identity.name

il faut utiliser des namespace spéciaux ? instancier quoi ?

Commentaire de BlackGoddess le 18/07/2003 10:05:16

c bon merci, en fait je pensais pas ca aussi simple, je cherchais plus compliqué
et comme un boulet j'avais laissé tout en min (je code en c#)

Commentaire de BlackGoddess le 18/07/2003 14:30:10

encore une question, sur l'utilisation des cookies :

j'ai une table 'Users' avec 3 champs : 'IDUser', 'UserName', 'UserPass'.

apres la 1ere authentification, si l'utilisateur decide d'enregistrer ses informations, je fais

FormsAuthentication.RedirectFromLoginPage(UserID, true);

ainsi avec Page.User.Identity.Name sur les autres formulaires je peux utiliser ma table pour la gestion des droits.

mais, si l'utilisateur décide de changer son mot de passe, cela n'affectera pas le cookie, et donc le changement de mot de passe est inutile. Comment faire pour rendre le cookie erroné apres changement de mot de passe ?

Commentaire de BlackGoddess le 24/07/2003 16:46:01

j'ai essayé en mettant

FormsAuthentication.RedirectFromLoginPage(UserID + "-" + UserPass, true);

ca marche pas mieux

Commentaire de marloon le 24/07/2003 19:11:00

Si tu faisais en sorte que l'utilisateur soit automatiquement déloggué aprés un changement de pass ?
Essayes ca :

FormsAuthentication.SignOut()

Ca devrait aller... mais c peut etre pas la meilleure solution.
C'est ce que je ferai moi, si y'a d'autre solution ?

Commentaire de BlackGoddess le 25/07/2003 10:09:36

d'accord, je vais essayer apres un changement de passe :)
le pb est que j'ai une base de comptes qui est commune a plusieurs bases :/

Commentaire de azuu le 11/08/2003 22:50:56

g une ptite question avec ce mode de login, comment peut on autoriser seulement une connexion simultannée par user?

Commentaire de Mia le 08/01/2004 16:45:59

alut


Je viens de lire ton code, que je trouve très interessant mais il me pose un petit prob. En fait, ce que j'aimerais, c qu'il ne lance pas automaitquement la fenetre de login lors de l'appel de n'importe quelle page du site.
ce que je veux faire faire, c une partie de site "normale" et une partie "Admin" et c seulement pour accèder au pages "Admin" que g besoin d'1 login form. J'espère que tu vois ce que je veux dire.

comment faire celà, as-tu une idée?

Merci

Commentaire de fabrice69 le 08/01/2004 17:43:31 administrateur CS

oui en spécifiant pour une page du site (toujours dans le Web.config) que cette sécurité est active.
comme par exemple :

...
&lt;/system.web&gt;
&lt;location path="Tonfichierprotege.aspx"&gt;
  &lt;system.web&gt;
        &lt;authorization&gt;
          &lt;deny users="?"/&gt;
        &lt;allow users="*"/&gt;
    &lt;/authorization&gt;

  &lt;/system.web&gt;

F___
&lt;/location&gt;
...

Commentaire de Mia le 09/01/2004 10:29:44

Salut, c encore moi.

Je suis parvenu à faire en sorte que la page login.aspx s'affiche que lorsque je lance ma page http://localhost/monsite/admin.aspx

Si je lance la page par défaut http://localhost/monsite (je ne tape pas le nom de la page default.htm car il est spécifié dans les paramètres d'iis), c bien cette page (default.htm) qui apparait.

Maintenant, si je lance la page http://localhost/monsite/admin.aspx , je suis redirigé vers la page login.aspx. Dans cette page, si je tape le bon user et bon pwd, je reçois un msg d'erreur disant "ressource introuvable", ce qui est logique car je suis redirigé automatiquement vers la page default.aspx (au lieu de admin.aspx) qui n'existe pas. Je ne comprends pas pq et ou est spécifié ce nom de page.

Sorry pour toutes ces questions, je débute.

Commentaire de hisham91 le 16/11/2004 16:19:47

Salut,

J'essai désespéremment de codé en c#.net bref je veux récupérer une valeur de ma BDD et le faire afficher dans un "label" cependant les label et textbox n'ont pas de propriété permettant de les relier à une base de données comme le font les listbox et dropdownlist ! Franchement sa me dit rien de migrer mes appli ASP vers ASP.Net ...

PLEEEEEAAAASSSE  can you help me ??

Commentaire de hisham91 le 16/11/2004 16:21:05

Puré je suis pas sorti de l'auberge :) votre dernière réaction date de 9 janvier 04

aucune chance :'(

Commentaire de delfossf le 30/06/2006 04:38:00

Ce post est assez vieux mais je te remercie beaucoup, tu m'as fait gagné énormément de temps.

Commentaire de de saint meen le 13/10/2006 05:08:30

Merci à CodesSources de laisser tous ces vieux posts toujours pratiques !

Commentaire de tounsi87 le 21/12/2007 22:17:32

merci

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,902 sec (3)

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