我正在编写一个Asp.Net WebForms应用程序,我在其中调用一个编辑页面,使用URL中的查询字符串参数传递有关要编辑的记录的数据.
喜欢:
http://myapp.path/QuoteItemEdit.aspx?PK=1234&DeviceType=12&Mode=Edit
在应用程序的上一页中,我向用户展示了他可以根据自己的帐户权限编辑的筛选项目的GridView,并使用上述参数列表调用编辑页面,页面知道该怎么做.我不会对目标页面进行任何额外的检查,以验证用户是否有权访问传入的PK记录值,因为我打算依赖上一页来过滤列表,我会没事的.
但是,很明显,用户现在可以键入不同PK的URL并获得编辑该记录的访问权限. (或者,他可以访问Mode = View,但不能访问Mode = Edit或Mode = Delete.基本上,我希望避免验证目标页面上的记录和访问权限.
在调用目标页面之前,我还使用Session变量测试了相同的工作流程来存储PK,DeviceType和Mode,然后在目标页面中从Session中读取它们.因此没有涉及查询字符串参数.这将控制远离用户.
所以,我正在寻找关于这两种方法的反馈,以便我选择一种可接受/标准的方式来处理这个问题,因为它似乎是CRUD应用程序非常常见的应用程序设计模式.