我尝试过进行Google搜索,但找不到任何相关内容,所以我在这里问。
我的应用程序(.NET 4.0,C#,WinForms)有一个下拉列表,我使用这些值来确定将在整个站点中的RadGrids等上显示哪些数据。例如,在每个引用数据的内容页面上,我使用它:
DropDownList ddList = ((DropDownList)Master.FindControl("xDropDownList"));
if (ddList == null)
return; // Handle problem of no data
List<ClassX> x = DBCall.GetData(ddList.SelectedValue);
现在这看起来很好,但是我想使用.SelectedItem.Text(ListItem的文本值)并解析它以获取包含权限值(写访问权限与读访问权限)的另一个值:
DropDownList ddList = ((DropDownList)Master.FindControl("xDropDownList"));
if (ddList == null)
return; // Handle problem of no data
if(ddList.SelectedItem.Text.Substring(0,1) == "W")
// Write access
else
// Read Access only
这是一个巨大的禁忌吗?可以在客户端更改此文本并将其发送回服务器吗?我很乐意将整个ddList值更改为'R'或'W'+“_”+ ddList.SelectedValue(例如R_00001或W_00001)。
但实际上,我是否应该通过宕机来处理安全措施?我已经设置了RoleManager来处理更大的安全措施(普通用户与管理员等),但对于特定项目(如00001项目),读取或写入访问权限基于该项目,而不是用户,因此00001'读'项和00001'写'项可以分配给用户,他们可以有多个(即一个用户可以在他们的组中有一个或多个项目,每个项目可以按照指示读取或写入该项目在数据库中读取或写入值)。我只是想犯这个错误吗?
很多问题,对不起。
TL; DR:
我应该使用ASP.NET DropDownList.SelectedItem.Text中的结果作为可靠的任何服务器端调用的参数,还是可以在客户端操作?