如何防止Login.aspx页的ReturnUrl参数覆盖ASP.NET登录控件的DestinationPageUrl属性?
时间:2020-03-05 18:44:37 来源:igfitidea点击:
我正在使用ASP.NET登录控件和表单身份验证作为ASP.NET Web应用程序的成员身份/凭证。我有诸如PasswordRecovery.aspx之类的页面,仅匿名用户可以访问。当我从此类页面单击登录链接时,登录页面在地址栏中具有ReturnUrl参数:
http://www.example.com/Login.aspx?ReturnUrl=PasswordRecovery.aspx
然后,在成功登录后,用户将返回到他们不再具有访问权限的ReturnUrl参数中指定的PasswordRecovery.aspx页。
解决方案
回答
我在Velocity Reviews上找到了答案。我处理了LoggedIn事件,以强制重定向到DestinationPageUrl页面。
Public Partial Class Login Inherits System.Web.UI.Page Protected Sub Login1_LoggedIn(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Login1.LoggedIn 'overrides ReturnUrl page parameter Response.Redirect(Login1.DestinationPageUrl) End Sub End Class