Bonjour
j'ai une table Gestionnaire(idGest,Login,Pwd,Role)..je cherche a réaliser une authentification selon le rôle de l'utilisateur s'il est "admin" une page "Accueil_admin" s'ouvre sinon la page "accueil" s'ouvre

voila mon Web.Config:
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
<?xml version="1.0"?>
 
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
 
<configuration>
  <connectionStrings>
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
      providerName="System.Data.SqlClient" />
 
 
    <add name="bdSPRConnectionString24" connectionString="Data Source=amine;Initial Catalog=bdSPR;Integrated Security=True"
      providerName="System.Data.SqlClient" />
 
 
  </connectionStrings>
 
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
 
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>
 
    <!-- par défaut aucun utilisateur non authentifié ne peut accéder au site -->
    <authorization>
      <deny users="?"/>
    </authorization>
 
 
    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>
 
    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
      </providers>
    </profile>
 
    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>
 
  </system.web>
 
  <location path="~/Account/WF_Accueil_Admin.aspx">
    <system.web>
      <!-- pour la Page1.aspx on autorise les roles Admins et Members et on refuse tous les autres -->
      <authorization>
        <allow roles="Admin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
 
  <location path="~/Account/WF_Accueil.aspx">
    <system.web>
      <!-- pour la Page2.aspx on autorise le role Admins et on refuse tous les autres -->
      <authorization>
        <allow roles="user"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>
Login.aspx
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
<table>
   <tr>
      <td>Login:</td>
      <td><input id="txtLogin" type="text" runat="server"/></td>
      <td><ASP:RequiredFieldValidator ControlToValidate="txtLogin"
           Display="Static" ErrorMessage="*" runat="server" 
           ID="vUserName" /></td>
   </tr>
   <tr>
      <td>Password:</td>
      <td><input id="txtPwd" type="password" runat="server"/></td>
      <td><ASP:RequiredFieldValidator ControlToValidate="txtPwd"
          Display="Static" ErrorMessage="*" runat="server" 
          ID="vUserPass" />
      </td>
   </tr>
   <tr>
      <td>Remember me:</td>
      <td><ASP:CheckBox id="chkPersistCookie" runat="server" autopostback="false" /></td>
      <td></td>
   </tr>
</table>
        <p>
            <asp:Button ID="valid" runat="server" onclick="valid_Click" Text="valider" />
        </p>
Login.aspx.cs

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Web.Security;
 
 
namespace WebApplication1
{
    public partial class WF_Authentification : System.Web.UI.Page
    {
 
 
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
 
        private bool ValidateUser(string userName, string passWord)
        {
            SqlConnection conn;
            SqlCommand cmd;
            string lookupPassword = null;
 
            // Vérifie la présence de userName non valide.
            // userName ne doit pas être nul et doit comprendre entre 1 et 15 caractères.
            if ((null == userName) || (0 == userName.Length) || (userName.Length > 15))
            {
                System.Diagnostics.Trace.WriteLine("[ValidateUser] Input validation of userName failed.");
                return false;
            }
 
            // Vérifie la présence de passWord non valide.
            // passWord ne doit pas être nul et doit comprendre entre 1 et 25 caractères.
            if ((null == passWord) || (0 == passWord.Length) || (passWord.Length > 25))
            {
                System.Diagnostics.Trace.WriteLine("[ValidateUser] Input validation of passWord failed.");
                return false;
            }
 
            try
            {
                // Contactez votre administrateur SQL Server afin d'obtenir une chaîne de connexion
                // appropriée à utiliser pour la connexion à votre serveur SQL local.
                conn = new SqlConnection("Data Source=.\\SQLEXPRESS;Integrated Security=True;User Instance=True");
                conn.Open();
 
                // Crée SqlCommand pour sélectionner le champ pwd dans la table d'utilisateurs étant donné le userName fourni.
                cmd = new SqlCommand("Select Pwd from Gestionnaire where Login=@userName", conn);
                cmd.Parameters.Add("@userName", SqlDbType.VarChar, 25);
                cmd.Parameters["@userName"].Value = userName;
 
                lookupPassword = (string)cmd.ExecuteScalar();
 
                // Nettoie la commande et les objets de connexion.
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                // Ajoute ici la gestion des erreurs pour le débogage.
                // Ce message d'erreur ne doit pas être renvoyé à l'appelant.
                System.Diagnostics.Trace.WriteLine("[ValidateUser] Exception " + ex.Message);
            }
 
            // Si aucun mot de passe n'est trouvé, retourne false.
            if (null == lookupPassword)
            {
                // Vous pouvez écrire ici les échecs de tentative de connexion dans le journal des événements, pour une sécurité accrue.
                return false;
            }
 
            // Compare lookupPassword et le passWord d'entrée à l'aide d'une comparaison sensible à la casse.
            return (0 == string.Compare(lookupPassword, passWord, false));
 
        }       
 
        protected void valid_Click(object sender, EventArgs e)
        {
            if (ValidateUser(txtLogin.Value, txtPwd.Value))
            {
                FormsAuthentication.RedirectFromLoginPage(txtLogin.Value,
                   chkPersistCookie.Checked);
 
            }
            else
                Response.Redirect("WF_login.aspx", true);           
 
 
             }
           }
 
        }
S'il vous plait aidez moi c'est la première fois que je crée une authentification j'ai trouvé un article et j'ai modifié Quelques lignes selon ce j'ai compris..
Merci d'avance