仅在来自某些网页时加载页面?

时间:2018-05-07 16:15:59

标签: c# asp.net webforms

Webform ASP.NET。目前,当我按下按钮或导航时,我正在使用Response.Redirect()重定向到另一个页面。有没有办法验证重定向的来源? 假设我有Login.aspx,当我按下Save按钮时,它会重定向到Account.aspx,但我想检查它来自哪里。如果有人只是在浏览器Account.aspx中写道,那个人就可以进入该页面而我不想要那样。 有没有办法验证重定向是否为空并且它来自特定页面?

编辑澄清我的问题: 假设我有一个Index.aspx和一个Register.aspx菜单。注册只是一个保存用户数据的表单,然后重定向到Buythings.aspx我希望这个人只能从某个页面重定向访问Buythings.aspx(Registration.aspx)

3 个答案:

答案 0 :(得分:0)

你需要request.referrer;这样的事情(你可能需要稍微编辑一下):

string pageName = Request?.UrlReferrer?.Segments[1];

然后你说:

if (pageName ="Registration.aspx")
{ DO STuff}

答案 1 :(得分:0)

使用Http referer (wiki)

Request.UrlReferrer (SO discuss)是实际属性,可作为http规范的一部分提供。

但是,如维基中所述,在某些情况下它可能无效或可能被篡改,因此您必须照顾这些。

答案 2 :(得分:-2)

控制器操作本质上是方法,所以你可以传递一些像密码一样的东西,不确定我会推荐这个。相反,如果您尝试限制访问,我会针对用户进行身份验证,以确保他们有权访问该页面,如果您希望任何人登录以便能够访问该页面,那么只需使用

User.Identity.IsAuthenticated