我想禁用一個按鈕,如果用戶沒有權限訪問它。我 禁止在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