保护asp标记内的变量:超链接导航属性

时间:2011-03-02 03:02:52

标签: c# asp.net navigation

我有一个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时传递参数吗?

感谢。

2 个答案:

答案 0 :(得分:2)

是的,创建一个LinkBut​​ton,让它回发到服务器,然后获取您需要的信息(可能需要从数据库加载)并改为执行Response.Redirect。

如果公开查询字符串,则始终可以更改它。我看到的其他方法是加密查询字符串参数,并在另一页上解密。如果解密失败,则会修改。

HTH。

答案 1 :(得分:0)

您可以像Brian已经提到的那样加密参数。您可以研究的另一件事是Cross Page Postback。另一种方法是在会话cookie中设置参数,对代码进行重定向并在目标页面上选择params。