我有一个带有 C# 后端代码的 ASP.net 站点。我们有以下(删节的)代码,它适合我们的需要,但它可能会更好。这是在名为 SearchResults.aspx 的页面上。如果用户未登录,链接会将他们重定向到登录页面。如果他们已登录,它会将他们重定向到该项目的查找页面。我想要它做的是如果他们点击“未登录链接”,他们登录后将他们重定向到相应的项目页面。我需要以什么方式将 returnURL 提供给登录页面?我尝试过的每一种方式,它只是在登录后将我重定向到默认页面。
<AnonymousTemplate>
<!--Want to change the link below so that the return URL will take me to
ItemInformation.aspx-->
<%# DataBinder.Eval(Container.DataItem, "itemnumber").ToString().Trim() %><br/>
<asp:HyperLink runat="server" ID="HyperLink1" NavigateUrl='Account/Login.aspx'>
Please login to review information for this item.</asp:HyperLink>
</AnonymousTemplate>
<LoggedInTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#
"~/ItemInformation.aspx?&ItemID=" + DataBinder.Eval(Container.DataItem,
"itemnumber").ToString().Trim() + "&itemdept=" + DataBinder.Eval(
Container.DataItem, "department").ToString()%>'
Text='<%# DataBinder.Eval(Container.DataItem, "itemnumber")%>'>
</asp:HyperLink>
</LoggedInTemplate>
编辑- 我正在使用 ASP.net Web 应用程序模板的默认登录结构,所以这就是登录后端的全部内容。
protected void Page_Load(object sender, EventArgs e)
{
string returnUrl = Request.QueryString["ReturnUrl"];
RegisterHyperLink.NavigateUrl = "Register.aspx?ReturnUrl=" +
HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
}