0

我有三个 ASPX 页面。从另外两个页面调用的 ASPX 页面是我可以上传文件的页面。

我使用 JavaScript 从其他两个页面调用该上传页面:

 function UploadFax_Click() {
             var grid = ISGetObject("WebGrid1");
             var curSelObj = grid.GetSelectedObject(); // get selected object
             var row = curSelObj.GetRowObject(); // get the WebGridRow object
             if (row.Type == "Record") {
                 var s_id = row.KeyValue
            }
            window.location = '../Admin/UploadFax.aspx?suppid=' + s_id;
         }

然后在上传页面上我得到 QueryString:

 If Not IsPostBack And Len(Request.QueryString("suppid")) > 0 Then
        If Not Request.QueryString("suppid") Is Nothing Then
            Session("suppid") = Request.QueryString("suppid")
        End If
    End If

我需要的是,如果我从两个页面之一调用上传页面,则上传页面的功能应该受到限制。例如:如果我调用 Upload-Page 那么 Checkbox.Disabled = true 并从另一个页面启用 Checkbox。

我的想法是从该页面发送第二个参数,然后使用 Request.QueryString 获取参数,然后使用 if/else 启用或禁用该复选框。

问题是,是否有另一种更好的可能性来做我想要的?如果是,我该怎么做?

4

2 回答 2

1

您可以检查Request.UrlReferrer并从中跳舞:

Dim restrictedAccess As Boolean = Not IsNothing(Request.UrlReferrer) AndAlso
        Request.UrlReferrer.AbsolutePath.IndexOf("/Original.aspx", StringComparison.InvariantCultureIgnoreCase) >= 0

Checkbox.Disabled = Not restrictedAccess
于 2012-12-14T10:05:23.533 回答
1

使用QueryString可能会导致安全违规,为什么不使用Session参数,

当你从第一页调用它然后设置

Session("IsCalled")="1"

在第二页加载检查

IF Not Session("IsCalled") Is Nothing AndAlso Session("IsCalled")="1" Then
   CheckBox1.Enabled=False
End If

和 Vise Versa 在第一页加载。

于 2012-12-14T10:11:23.443 回答