Bonjour,

j'essaie d'utiliser l'attribut d'action [Authorize] pour filtrer l'accès à plusieurs fonctionnalités. Je ne peux utiliser l'AccountController livré avec mvc car mes utilisateurs se trouvent déjà dans une base à part.

J'ai donc créé un formulaire et le "AuthController" qui va avec :
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
FormsAuthentication.Initialize();
 
                        // Create a new ticket used for authentication
                        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                                                                           1,                                       // Ticket version
                                                                           collection["login"],                 // Username associated with ticket
                                                                           DateTime.Now,                            // Date/time issued
                                                                           DateTime.Now.AddMinutes(30),             // Date/time to expire
                                                                           true,                                    // "true" for a persistent user cookie
                                                                           String.Empty,                            // User-data, in this case the roles
                                                                           FormsAuthentication.FormsCookiePath);    // Path cookie valid for
 
                        // Encrypt the cookie using the machine key for secure transport
                        string hash = FormsAuthentication.Encrypt(ticket);
                        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, // Name of auth cookie
                                                           hash); // Hashed ticket
 
                        // Set the cookie's expiration time to the tickets expiration time
                        if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
 
                        // Add the cookie to the list for outgoing response
                        Response.Cookies.Add(cookie);
Mes utilisateurs sont authentifiés et passent avec succès les filtres [Authorise] mais pas les [Authorize(Roles="...")].

Où dois-je mettre en place le rôle de l'utilisateur :
- dans le cookie (pas très secure) ?
- en variable de session ?

merci.