문제

나는 이것을 내 logincontrol.ascx 코드에 다음과 같습니다.

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

로그 아웃시 사용자가 로그인 페이지 (이 경우 default.aspx)로 리디렉션 될 것으로 예상했으며 아니 쿼리 문자열 첨부. 대신 URL에서 볼 수있는 것은 다음과 같습니다.

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

이제 로그 아웃 후 다른 사람으로 로그인하고 (권한이 적음) 로그인하고 로그인하면이 새 로그인이 볼 권한이없는 페이지로 다시 리디렉션됩니다!u003Cgrrr />

"정상적인"사용자는이 문제를 해결하지 못하지만 테스트 사용자는 문제가되는 한 버그입니다.

Respondirect가 있더라도 쿼리 문자열이 여전히 나타납니다. 로그 아웃에서 쿼리 문자열을 어떻게 제거합니까 ???

도움이 되었습니까?

해결책

이 시도:

Response.Redirect(FormsAuthentication.LoginUrl);

다른 팁

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;
    }
}

또한이 코드의 모든 페이지를 추가하고 있습니다.

protected void Page_Load(object sender, EventArgs e)
    {
      Response.Cache.SetCacheability(HttpCacheability.NoCache);
      Response.Cache.SetAllowResponseInBrowserHistory(false);
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top