ASP.NET LoginUser.DestinationPageUrl 无法正常工作

标签 asp.net login-control

HTML 是这样的:

  <asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false" OnLoggedIn="LoginUser_LoggedIn"
                    OnLoginError="LoginUser_LoginError">
</asp:Login>

LoginUser_LoggedIn事件我正在设置目标 URL,如:
LoginUser.DestinationPageUrl = "~/mycustompage.aspx";
FormsAuthentication.RedirectFromLoginPage(LoginUser.UserName, true);

这里当没有 ReturnUrl在页面 URL 中,它会重定向到“~/mycustompage.aspx”页面,但如果 URL 中指定了任何 ReturnUrl,则它会重定向到 ReturnUrl 页面。

无论 ReturnUrl 是否存在,我总是想重定向到“~/mycustompage.aspx”页面。如何实现这一目标?

非常感谢提前!

最佳答案

DestinationPageUrl是登录后的默认目标页面。
?ReturnUrl强于DestinationPageUrl所以,如果设置了它就赢了。
Response.RedirectLoginUser_LoggedIn强于ReturnUrl所以,如果你想覆盖 ReturnUrl您必须使用此代码:

 void LoginUser_LoggedIn(Object sender, EventArgs e)
    {
      Response.Redirect("~/mycustompage.aspx");
      ....
    }
DestinationPageUrl应该在aspx页面中设置
 <asp:Login DestinationPageUrl="~/mycustompage.aspx" ... />

或在 Page_Load事件正常工作。
void PageLoad(Object sender, EventArgs e)
    {
      LoginUser.DestinationPageUrl = "~/mycustompage.aspx";
      ....
    }

如果您必须在登录后更改目标页面(例如,如果页面根据用户或用户的角色而变化),您必须使用 Server.trasfer()矿石 Response.Redirect() .
void LoginUser_LoggedIn(Object sender, EventArgs e)
    {
      Response.Redirect("~/mycustompage.aspx");
      ....
    }

关于ASP.NET LoginUser.DestinationPageUrl 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20370416/

相关文章:

asp.net - 您使用什么方法将ASP.Net应用程序野外部署?

asp.net - 如何导出自动生成的机器 key

php - 简单的登录脚本

php - 用户只能通过自己的电脑在 php 中登录

asp.net - Asp.net登录控件,仅呈现服务器端控件,而不显示HTML

javascript - 从javascript中的代码隐藏访问 session 变量

c# - 将 ASP.Net 连接到 Wcf/Tcp 聊天服务

javascript - 使用 JavaScript 的文本框自动结果出现故障

javascript - 在客户端检查登录状态

c# - 管理员专属页面?