使用DropDownList SelectedItem.Text作为方法/类的参数 - 服务器端安全问题?

时间:2013-02-04 02:06:30

标签: c# asp.net drop-down-menu code-behind

我尝试过进行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中的结果作为可靠的任何服务器端调用的参数,还是可以在客户端操作?

0 个答案:

没有答案