我正在开发一个ASP.NET项目,目前正在进行一些攻击。 基本上,我有三个不同级别的用户 1.管理员 2. DMV 3.来电者
所有用户都有各自的目录,可以根据自己的权限访问资源。当有人想登录应用程序时,他必须使用根目录中存在的相同login.aspx页面,登录后,他将被重定向到他各自文件夹的主页,基于他的特权。
在我的应用程序中,有时当会话不情愿地关闭时,用户被重定向到登录页面,或者他知道页面的完整URL并且只想快速登录并使用传递的“Redirect_URL”变量到达该页面作为查询字符串,他不能这样做。在他登录时,他被重定向到他的主页,这将使他再次做一些行动来到达他所在的页面。
因此,我需要login.aspx页面检查引用页面的URL,将其存储在查询字符串中,使用类似HTTP_REFERER的内容说“Redirect_url”,一旦用户成功登录,他就会被重定向到页面,出现在“Redirect_url”变量中。
我也在某处找到了Global.asax解决方案但在我的情况下,我认为上面提到的逻辑效果最好。
答案 0 :(得分:5)
两件事:
首先:要获得快速解决方案,只需使用Request.ServerVariables["HTTP_REFERER"]
或Request.UrlReferrer
即可获取HTTP Referrer标头值。
第二:使用ASP.NET的内置Forms身份验证类,他们可以为您执行重定向(和查询字符串重定向到)管理。