在登录页面中添加以下代码,以确保首次访问时 ReturnURL 参数存在:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Request.QueryString["ReturnUrl"] == null)
{
string redirectUrl = Request.Url.AbsoluteUri;
redirectUrl = redirectUrl.IndexOf("?") != -1 ? redirectUrl.Substring(0, redirectUrl.IndexOf("?")) : redirectUrl;
redirectUrl += "?ReturnUrl=" + HttpUtility.UrlEncode(Request.ServerVariables["URL"]);
Response.Redirect(redirectUrl);
}
}
}
这段代码首先检查页面是否在 postback 中,如果不是首次访问,则跳过检查。如果是首次访问,则检查是否存在 ReturnUrl 参数。如果不存在,则在登录页面的 URL 中添加 ReturnUrl 参数,并将页面重定向到更新的 URL。这样可以确保 ReturnUrl 参数在首次访问时存在。