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#]Comment utiliser login/password pour accéder a une page ?


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut [C#]Comment utiliser login/password pour accéder a une page ?
    bonjour
    j'ai deja postulé pour cette question, mais aucun element de reponse!!
    j'explique mon probleme

    dans mon site j'ai une page login.aspx qui me permet de s'identifier, hors j'ai plusieur type d'utilisateur, parmi eux :utilisateurs authentifies + administrateur authentifieé.
    l'authentifiacation se fai avec ma tbl_utilisateur :login, motdepass, profil (pour differencier ces utilisateurs)

    mon souci, c'est que je voudrai que seule une page qui ne s'affiche pas aux autres utilisateurs authentifieés , et si l'utilisateur authentifier est un admin cette page sera visible dans mon site;
    pour cela j'ai variable de session: Session["ID_Profil"]

    y a t il une proprité pour la visibilité d'une page aspx????



    merci pour toute intervetion sur cette question

  2. #2
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Je ne connais pas de fonction permettant de masquer une page entière, seulement tu peux choisir de ne pas afficher la page pour les non administrateurs.

    Tu peux aussi faire autrement, en utilisant les MultiView. En suite en code-behind, tu peux dire que si tu n'est pas authentifié alors tu affiche la View 0, sinon la view administrateurs, ou X View selon les infos de ta variable de session.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    pourrai t m'expliquer comment faire pour choisir de ne pas afficher la page pour les non administrateurs????????????

    je suis perdu !!!!!

    merci

  4. #4
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Ok, je vais essayer de détailler en te donnat des bout de code.

    A mon avis, pour faire ce que tu veux, le plus simple est d'utiliser des MultiViews.
    Pour cela, je vais te donner une page ASP, avec 1 multiview et 2 views.

    1 pour les admins; l'autre pour ceux qui n'ont pas le droit.

    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
     
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="TEST.aspx.cs" Inherits="TEST" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:MultiView ID="MultiView1" runat="server">
                <asp:View ID="Admin" runat="server">
                    Ici, on va mettre le panneau pour les admins ...</asp:View>
                <asp:View ID="Autres" runat="server">
                    Vous n'êtes pas autoriser à rentrer ici !</asp:View>
            </asp:MultiView>&nbsp;</div>
        </form>
    </body>
    </html>
    Ensuite, la logique de la page est la suivante :

    - Je suis un utilisateur non identifier, je n'ai pas donc pas de variables de session, donc je n'est pas le droit d'aller sur cette page => cela veut dire que je vais diriger l'utilisateur sur la view 2

    - Je suis un utilisateur authentifier mais pas admin, j'ai donc une variable de session mais celle-ci m'indique que je ne suis pas pas admin, donc je n'est pas non plus le droit d'accès à la page => cela veut dire que je vais diriger l'utilisateur sur la view

    - Je suis un administrateur, j'ai donc une variable de session indiquant que je suis admin, je peux voir la page => Cela veux dire que je vais lui afficher la view 1, correspondat à la page admin

    Voici le 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
     
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
     
    public partial class TEST : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["ID_Profil"].ToString() == "ADMIN")
                MultiView1.SetActiveView = 0; // 0 pour la view 1
            else
                MultiView1.SetActiveView = 1; // 1 pour la view 2
        }
    }
    Bien sur, ce code fonctionne si dans la variable de session tu sotcke la string ADMIN dans la variable de session.


    Je peux pas faire plus clair et plus simple

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    c'est ici kel faut rajouter les composantes qui vont s'afficher pour l'admin c'est a dire : ma datagrid, mes label;.....

    (Ici, on va mettre le panneau pour les admins ...)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    je touve pas le composant MultiView
    je develope avec VStudio 2003 ,1.1

  7. #7
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Ha ok, alors le composant multiview n'existe pas, mais bon tu peux faire autrement

    On reprend notre page et on la modifie graphiquement en :

    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
     
    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    	<HEAD>
    		<title>WebForm1</title>
    		<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    		<meta name="CODE_LANGUAGE" Content="C#">
    		<meta name="vs_defaultClientScript" content="JavaScript">
    		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    	</HEAD>
    	<body MS_POSITIONING="GridLayout">
    		<form id="Form1" method="post" runat="server">
    			<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>
    		</form>
    	</body>
    </HTML>
    Bon, on change de tactique la logique reste la même, sauf qu'au lieu d'utiliser le composant multiview, on va uitlisr un placeHolder et ajouter les composant que l'on veux en fonction de la session, le code donne :

    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
     
    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;
     
    namespace WebApplication1
    {
    	/// <summary>
    	/// Description résumée de WebForm1.
    	/// </summary>
    	public class WebForm1 : System.Web.UI.Page
    	{
    		protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
     
    		private void Page_Load(object sender, System.EventArgs e)
    		{
    			if (Session["ID_Profil"].ToString() == "ADMIN")
    			{
    				Label monLabel = new Label();
    				monLabel.Text = "Je suis un ADMIN";
    				PlaceHolder1.Controls.Add(monLabel);
    			}
    			else
    			{
    				Label monLabel = new Label();
    				monLabel.Text = "Vous n'êtes pas autoriser à venir ici !";
    				PlaceHolder1.Controls.Add(monLabel);
    			}
    		}
     
    		#region Code généré par le Concepteur Web Form
    		override protected void OnInit(EventArgs e)
    		{
    			//
    			// CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
    			//
    			InitializeComponent();
    			base.OnInit(e);
    		}
     
    		/// <summary>
    		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
    		/// le contenu de cette méthode avec l'éditeur de code.
    		/// </summary>
    		private void InitializeComponent()
    		{    
    			this.Load += new System.EventHandler(this.Page_Load);
     
    		}
    		#endregion
    	}
    }
    Voilà,

    Ce projet à été fait sous VS2003, Framework 1.1

    Sur ce, bonne soirée

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    merci pour tout

    je testerai ca ce soir!

  9. #9
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Oublie pas de mettre un petit résolu si c'est bon

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

Discussions similaires

  1. [AC-2003] Login et Password pour accéder à un formulaire
    Par ROUSSIGNE dans le forum Access
    Réponses: 6
    Dernier message: 26/02/2014, 16h58
  2. créer une fenetre pour accéder a une page en laissant son mail
    Par binouzman dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 03/07/2006, 08h36
  3. Réponses: 3
    Dernier message: 31/12/2005, 23h09
  4. Réponses: 3
    Dernier message: 29/10/2005, 14h13
  5. Comment utiliser Developpez.com pour résoudre votre problème
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 08/01/2005, 11h11

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