是否可以使Page.IsPostBack独立于ASP.net而变为真?

Jez*_*Jez 5 asp.net security webforms

如果正在检查用户的角色以确定他们是否可以访问页面,那么将此检查仅安排在一个页面内是否安全if (!Page.IsPostBack) { ... }?难道是可能的客户,使Page.IsPostBack == true独立的ASP.net; 也就是说,客户端POST到页面并设置正确的表单字段?如果可能,那么我认为最好的做法是检查每个页面加载的安全性,而不仅仅是何时Page.IsPostBack == false.

Jez*_*Jez 0

对所有已经回答的人表示抱歉,但我不同意仅检查块内的安全授权Page.IsPostBack == false必然是不安全的(只要事件验证和加密视图状态打开)。我已经解释了为什么我在这里这么认为,但简短的答案是:我认为您不能在不首先将页面加载到非回发上下文中以获取视图状态和事件验证表单字段的情况下欺骗页面的回发。返回的视图状态字段将导致您隐藏在块内的内容Page.IsPostBack == false在使用该视图状态的任何回发中保持隐藏状态,并且由于视图状态已加密,因此无法篡改。