Webform ASP.NET。目前,当我按下按钮或导航时,我正在使用Response.Redirect()重定向到另一个页面。有没有办法验证重定向的来源? 假设我有Login.aspx,当我按下Save按钮时,它会重定向到Account.aspx,但我想检查它来自哪里。如果有人只是在浏览器Account.aspx中写道,那个人就可以进入该页面而我不想要那样。 有没有办法验证重定向是否为空并且它来自特定页面?
编辑澄清我的问题: 假设我有一个Index.aspx和一个Register.aspx菜单。注册只是一个保存用户数据的表单,然后重定向到Buythings.aspx我希望这个人只能从某个页面重定向访问Buythings.aspx(Registration.aspx)
答案 0 :(得分:0)
你需要request.referrer;这样的事情(你可能需要稍微编辑一下):
string pageName = Request?.UrlReferrer?.Segments[1];
然后你说:
if (pageName ="Registration.aspx")
{ DO STuff}
答案 1 :(得分:0)
Request.UrlReferrer
(SO discuss)是实际属性,可作为http规范的一部分提供。
但是,如维基中所述,在某些情况下它可能无效或可能被篡改,因此您必须照顾这些。
答案 2 :(得分:-2)
控制器操作本质上是方法,所以你可以传递一些像密码一样的东西,不确定我会推荐这个。相反,如果您尝试限制访问,我会针对用户进行身份验证,以确保他们有权访问该页面,如果您希望任何人登录以便能够访问该页面,那么只需使用
User.Identity.IsAuthenticated