我想禁用一个按钮,如果用户没有权限访问它。我 禁止在Page_Load事件如何在禁用模式下保护按钮?
Page_Load() {
if(!userhasrights) {
btn.Enabled=false;
}
}
但渲染asp.net后只是将其禁用的属性。它 黑客可以很容易地设置为“真” &可以访问按钮禁用。我怎样才能在禁用模式下保护我的按钮?
我想禁用一个按钮,如果用户没有权限访问它。我 禁止在Page_Load事件如何在禁用模式下保护按钮?
Page_Load() {
if(!userhasrights) {
btn.Enabled=false;
}
}
但渲染asp.net后只是将其禁用的属性。它 黑客可以很容易地设置为“真” &可以访问按钮禁用。我怎样才能在禁用模式下保护我的按钮?
您无法保护按钮的html状态,因为用户可以随时修改它。
按下按钮时,您应该进行服务器端验证,并将错误/警告返回给未被授权点击的用户。您仍然可以使用禁用状态来实现可用性。
另一种解决方案是在用户未被授权点击时不生成按钮。如果您确实需要禁用按钮,请添加图片而不是按钮。
我劝你在JavaScript,但在服务器端使用如果...否则
在你的脚本应该是这样的
if(userHasRights)
{
// display code for button
}
else
{
//display appropriate message
}
而不是做不是在客户端使用按钮的Enable
属性,你应该使用Visible
属性来使它更安全,因为如果一个控件的Visible
属性是false
那么它将不会呈现。所以不存在黑客行为的问题。
Page_Load() {
if(!userhasrights) {
btn.Visible=false;
}
}
根据知识和经验,安全性应该尽可能接近您的代码所需。
就像之前执行需要特殊previledge的代码。
感谢您的回复。但是什么是//显示按钮的代码? – Tuscan 2011-06-02 06:20:40
Button MySexyButton = new Button(); MySexyButton.Text =“只有选择才能点击meh”; AnyASP:Panel.Controls.Add或Append(MySexyButton);只需添加与.Text属性相同的OnClick事件处理程序即可。更好的办法是有一个ASP:面板和玩它的可见状态,而不是编程按钮自己... – eugeneK 2011-06-02 06:24:11
使用<%=“这里去你的HTML代码”%>语法来输出字符串 – footy 2011-06-02 06:31:22