加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 03:45:48 所属栏目:asp.Net 来源:网络整理
导读:HTML就像: asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false" OnLoggedIn="LoginUser_LoggedIn" OnLoginError="LoginUser_LoginError"/asp:Login 在LoginUser_LoggedIn事件中,我将目标URL设置为: LoginUser.Dest
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);

这里当页面URL中没有ReturnUrl时,它会重定向到“?/ mycustompage.aspx”页面,但是如果在URL中指定了任何ReturnUrl,那么它将重定向到ReturnUrl页面.

无论ReturnUrl是否存在,我总是想重定向到“?/ mycustompage.aspx”页面.怎么做到这一点?

非常感谢提前!

解决方法

DestinationPageUrl是登录后的默认目标页面.

?ReturnUrl比DestinationPageUrl强,因此,如果设置它会获胜.

LoginUser_LoggedIn中的Response.Redirect强于ReturnUrl,如果要覆盖ReturnUrl,则必须使用以下代码:

void LoginUser_LoggedIn(Object sender,EventArgs e)
    {
      Response.Redirect("~/mycustompage.aspx");
      ....
    }

应该在aspx页面中设置DestinationPageUrl

<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");
      ....
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读