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:
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
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.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 <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>
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..
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); } } }
Merci d'avance![]()
Partager