로그 아웃에서 returnTourl 쿼리 문자열을 어떻게 삭제합니까?
-
06-07-2019 - |
문제
나는 이것을 내 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);
}
}
제휴하지 않습니다 StackOverflow