2009-03-13 8 views
1

Je me demandais si quelqu'un connaissait une bonne façon de contourner l'url de l'endroit où la page vous prend après que vous vous soyez connecté avec succès..NET Membership Login ReturnUrl Override

J'ai essayé ceci:

protected void Login1_LoggedIn(object sender, EventArgs e) 
     { 
      if (Roles.IsUserInRole(Login1.UserName, "Other")) 
      { 
       Response.Redirect("/User/"); 
      } 
      else if (Roles.IsUserInRole(Login1.UserName, "Administrator")) 
      { 
       Response.Redirect("/Admin/"); 

      } 
     } 

Quelqu'un at-il d'autres suggestions?

Répondre

0

Ce que je fais est de les envoyer à une page qui redirige vers l'emplacement approprié sur Init (Page_Init)

3

Vous pouvez ajouter les éléments suivants dans le web.config. Donc, il ne serait mis en un seul endroit:

<loginRedirectByRole> 
    <roleRedirects> 
     <add role="Administrator" url="~/Admin/Page.aspx" /> 
     <add role="User" url="~/User/Page.aspx" /> 
    </roleRedirects> 
</loginRedirectByRole> 

vous auriez encore faire la redirection dans le code -voir la pleine Article

0
HttpContext.Current.Response.RedirectLocation 

« obtient ou définit la redirectlocation dans l'en-tête HTTP ' emplacement '"

Ceci est à l'origine défini par" ReturnUrl "dans la chaîne de requête.