Concrètement, pour pouvoir utiliser la méthode user.IsInRole(), Il suffit juste d'ajouter les rôles de l'utilisateur sous forme d'un tableau de string lors de l'instanciation de l'objet
d'identification standard du framework.
// Récupération du cookie d'authentification
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = application.Request.Cookies[cookieName];
// Si cookie != null
if (authCookie != null)
{
// lecture du cookie d'authetification asp.net
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
// Lecture des roles de l'utilisateur, il suffit remplacer le tableau par du code
// qui retourne un tableau de string
string[] roles = new string[] { "role1", "role2" };
// Création d'un principal pour l'application
FormsIdentity identity = new FormsIdentity(authTicket);
GenericPrincipal principal = new GenericPrincipal(identity, roles);
// attach the principal to tue context objet that will flow throughout the request.
application.Context.User = principal;
}
.
Rien de bien compliqué donc, si ce n'est écrire le code réel qui permettra de récupérer les rôles véritables et qui remplacera le tableau statique de l'exemple.