我有三个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;
}
然后在Upload-Page上获取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启用oder禁用该复选框。
问题是,还有另一种更好的可能性来做我想要的吗?如果是的话我该怎么做?
答案 0 :(得分: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
答案 1 :(得分:1)
使用QueryString
可能会导致安全违规,为什么不使用Session
参数,
当你从第一页调用它然后设置
Session("IsCalled")="1"
在第二页加载检查
IF Not Session("IsCalled") Is Nothing AndAlso Session("IsCalled")="1" Then
CheckBox1.Enabled=False
End If
和Vise Versa在第一页加载。