访问https页面

时间:2013-01-15 11:41:43

标签: c# asp.net .net https

我目前正在向我的网站(.net)添加一个aspx页面,我的客户可以在其中插入信用卡详细信息。 我想只从几个页面访问该页面(让我们称之为a.aspx和b.aspx),如果有人试图从c.aspx访问该页面,他将无法这样做。 有没有办法将重定向限制为仅限几页的页面?

我试图在页面事件中检查调用的来源是什么,使用“sender”对象,但我不确定它是否正确。

希望问题很清楚。

3 个答案:

答案 0 :(得分:2)

是的 - 请查看HttpWebRequest.Referer属性。

使用此功能,您可以看到对c.aspx的请求来自哪个页面 - 如果它不是a.aspx或b.aspx,您可以将用户重定向。

答案 1 :(得分:2)

您需要知道的是referer。 简而言之,引用者是将您带到当前页面的页面。

我相信这应该得到ASP.net的推荐人

Request.Server["HTTP_REFERER"]

然后您可以检查并查看引用者是否符合您想要的来源。但是,我不确定引用欺骗的容易度/普遍程度,或者它是否存在。

答案 2 :(得分:0)

如前所述,您需要检查当前的UrlReferrer,这是vb.net中的一个示例

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    Dim bRedirect As Boolean = True
    Try
        If Not IsNothing(Page.Request.UrlReferrer) Then
            Dim sReferer As String = Page.Request.UrlReferrer.ToString()
            If sReferer.Contains("/a.aspx") Or sReferer.Contains("/b.aspx") Then
                bRedirect = False
            End If
    Catch ex As Exception
        ' Raise exception, decide whether or not to redirect
    End Try
    If bRedirect Then
        Response.Redirect("~/x.aspx", True)
    End If
End Sub