我有一个asp.net转发器控件,带有一系列asp:超链接的
<asp:HyperLink runat="server" ID="name" NavigationUrl="~/Pages/display.aspx?fileid={0}&user={1}" />
然后在OnItemDataBound方法上:
fullname.NavigationUrl=string.Format(name.NavigationUrl, user.fileid, user.userid);
这样在转发器中给了我一系列的URL
http://www.abc.com/users.aspx?fileid=1&userid=10
http://www.abc.com/users.aspx?fileid=2&userid=20
http://www.abc.com/users.aspx?fileid=3&userid=30
好的,所以使用一个简单的代理工具,有人可以用一些OTHER号替换其中一个参数,以获得他们不应该看到的内容。 除了服务器端验证和身份验证之外,还有一种更好的方法,而不是在尝试在转发器中创建动态URL时传递参数吗?
感谢。
答案 0 :(得分:2)
是的,创建一个LinkButton,让它回发到服务器,然后获取您需要的信息(可能需要从数据库加载)并改为执行Response.Redirect。
如果公开查询字符串,则始终可以更改它。我看到的其他方法是加密查询字符串参数,并在另一页上解密。如果解密失败,则会修改。
HTH。
答案 1 :(得分:0)
您可以像Brian已经提到的那样加密参数。您可以研究的另一件事是Cross Page Postback。另一种方法是在会话cookie中设置参数,对代码进行重定向并在目标页面上选择params。