Asp.net redirection entre pages

bonjour tout le monde,

je développe une application web avec visual web developper 2008 et sql server.
les utilisateurs doivent d’abord s’authentifier. J’ai défini des régles d’accés, je veux que seulement les utilisateur de role admin accédent a la page ~/admin/admin.aspx. Le problème est que aprés connexion l’url demendé est affiché :

http://localhost:4973/WebSite1/login.aspx?ReturnUrl=%2FWebSite1%2Fadmin%2FAdmin.aspx

mais son contenu non et le controle Login reste affiché.
voila mon code :

[code] protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (Roles.IsUserInRole(Login1.UserName, “admin”))
{

             Response.Redirect("~/admin/Admin.aspx");
         }
         else
         {
                               Response.Redirect("~/utilisateur/User.aspx");
          
         }

}
[/code]

j’attends votre aide et merci d’avance.

Là comme ça, je me disais, facile, je vais pouvoir l’aider … puis plus je relis, plus je me dis : heing ? C’est pas très clair ton problème là. Il faudrait clarifier tout ça.

Comme ca de but en blanc, http://localhost:4973/WebSite1/login.aspx?ReturnUrl=%2FWebSite1%2Fadmin%2FAdmin.aspx c’est une url qui indique que l’utilisateur qui veut accéder a la page admin.aspx n’est pas connecté.
Il est donc normal que tu es toujours la page de login en face de toi, vu que tu es sur cette page…

Après si tu nous donner tout le code de connexion de ta page, ça serait plus simple (et la configuration de tes rôles dans le web.config)

Oui, parceque pfoulala entre la grammaire et les phrases qui ont aucun sens, c’est dur dur de communiquer :slight_smile:

Si tu utilises un MembershipProvider, tu ne dois pas t’attacher à l’événement Authenticate du contrôle Login.

Cet événement est là pour faire une authentification “maison”.
Si tu t’attaches à cet événement, le MembershipProvider ne sera pas appelé, et le contrôle Login attendra que tu set e.Authenticated à true dans ton handler pour laisser passer.

Retire toi de cet événement, et attaches toi plutôt à LoggedIn. Cet événement survient seulement APRES authentification et envoi du cookie dans la réponse et AVANT redirection.

A noter que l’authentification à ce moment est juste dans le cookie, et pas encore dans Page.User. Il faut attendre la requête suivante pour que le module ASP.NET qui va bien set correctement Page.User.