Question

J'ai ceci dans mon code LoginControl.ascx derrière:

protected void Logout_Click(object sender, EventArgs e)
{
    FormsAuthentication.SignOut();
    Session.Abandon();
    FormsAuthentication.RedirectToLoginPage();
    Response.End;
    //Response.Redirect("default.aspx");
}

Je pensais que lors de la déconnexion, l'utilisateur serait redirigé vers la page de connexion (default.aspx dans ce cas) et qu'une chaîne de requête NO serait attachée. Au lieu de cela, ce que je vois sur l'URL est:

http://kab.domain.com/default.aspx?ReturnUrl=%2fAdministration%2fCharacter%2fView.aspx

Alors maintenant, après la déconnexion, je veux me connecter en tant que personne (avec des privilèges moindres) et si la connexion est réussie, il me redirige vers une page pour laquelle cette nouvelle connexion n'a pas la permission de voir! < grrr / >

Je me rends compte que le " normal " L'utilisateur ne rencontrera jamais ce problème, mais les utilisateurs du test le feront et il s'agira d'un bogue en ce qui les concerne.

Même avec Response.Redirect, j'obtiens toujours la chaîne de requête. Comment puis-je me débarrasser de la chaîne de requête à la déconnexion ???

Était-ce utile?

La solution

Essayez ceci:

Response.Redirect(FormsAuthentication.LoginUrl);

Autres conseils

public partial class MasterPage : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void signout_Click(object sender, EventArgs e)
    {
      Response.Write("<script language=javascript>var wnd=window.open('','newWin','height=1,width=1,left=900,top=700,status=no,toolbar=no,menubar=no,scrollbars=no,maximize=false,resizable=1');</script>");
      Response.Write("<script language=javascript>wnd.close();</script>");
      Response.Write("<script language=javascript>window.open('login.aspx','_parent',replace=true);</script>");
      Session["name"] = null;
    }
}

J'ajoute également sur toutes les pages ce code.

protected void Page_Load(object sender, EventArgs e)
    {
      Response.Cache.SetCacheability(HttpCacheability.NoCache);
      Response.Cache.SetAllowResponseInBrowserHistory(false);
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top