HttpContext.Actuel.De l'utilisateur.IsInRole ne fonctionne pas

dans mon contrôleur de l'action authcontroller/signin j'ai ce code:

    entities.UserAccount user = (new BLL.GestionUserAccount()).authentifier(email, password);
            //storing the userId in a cookie
            string roles = (new BLL.GestionUserAccount()).GetUserRoles(user.IdUser);
            //Initialize FormsAuthentication, for what it's worth

            FormsAuthentication.Initialize();

            //

            FormsAuthentication.SetAuthCookie(user.IdUser.ToString(), false);

            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
            1, //Ticket version
            user.IdUser.ToString(), //Username associated with ticket
            DateTime.Now, //Date/time issued
            DateTime.Now.AddMinutes(30), //Date/time to expire
            true, //"true" for a persistent user cookie
            roles, //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



                //Get the stored user-data, in this case, our roles

            //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);
            return RedirectToAction("index", "Home");

dans la page principale, j'ai un menu ,dans le menu il y a un élément qui est destiné à être vu que par le rôle admin.

     <% if (HttpContext.Current.User.IsInRole("admin")){ %>

            <%=Html.ActionLink("Places", "Places", "Places")%>
        <%} %>

même avec HttpContext.Actuel.L'utilisateur conatining le droit de rôles,je ne peux pas voir l'élément:

HttpContext.Actuel.De l'utilisateur.IsInRole ne fonctionne pas

globalx asax:

    protected void Application_AuthenticateRequest(Object sender, EventArgs e)
    {
        if (HttpContext.Current.User != null)
        {
            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                if (HttpContext.Current.User.Identity is FormsIdentity)
                {
                    FormsIdentity id =
                        (FormsIdentity)HttpContext.Current.User.Identity;
                    FormsAuthenticationTicket ticket = id.Ticket;

                    //Get the stored user-data, in this case, our roles
                    string userData = ticket.UserData;
                    string[] roles = userData.Split(',');
                    HttpContext.Current.User = new GenericPrincipal(id, roles);
                }
            }
        }
    }
Pouvez-vous vérifier si le Current.User rôle principal est correctement créé?
gideo ,vérifier l'image.mes rôles sont là.
Je sais que cela semble ridicule, mais c'est votre userData de votre billet. La seule chose que je peux penser si c'est si la userData ne va pas dans le principal. (Peut-être un problème avec les trois dernières lignes de glabal.asax) Juste une pensée.
gédéon,vous avez raison.il y "admin" en venant de ma base de données.trim() a arrangé les choses.Je vous remercie.Dois-je supprimer la question?
haha! Est sauvage, le deviner, mais c'est pas ce que je pensais que c'était! =) Non, vous n'avez pas besoin de supprimer la question (en effet vous ne pouvez pas) C'était une question écrite et peut être utile à quelqu'un.

OriginalL'auteur | 2012-01-24