如何防止 Login.aspx 页面的 ReturnUrl 参数覆盖 ASP.NET Login 控件的 DestinationPageUrl 属性?
-
09-06-2019 - |
题
我正在使用 ASP.NET 登录控件 和 表单验证 用于 ASP.NET Web 应用程序的成员资格/凭据。我有这样的页面 密码恢复.aspx 只有匿名用户才能访问。当我从这样的页面单击登录链接时,登录页面有一个 返回网址 地址栏中的参数:
http://www.example.com/Login.aspx?ReturnUrl=PasswordRecovery.aspx
登录成功后,用户将返回到 密码恢复.aspx 中指定的页面 返回网址 他们不再有权访问的参数。
解决方案
我找到了答案 速度评论. 。我处理了 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
不隶属于 StackOverflow