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

C# 使用DropDownList SelectedItem.Text作为方法/类服务器端安全问题的参数?,c#,asp.net,drop-down-menu,code-behind,C#,Asp.net,Drop Down Menu,Code Behind,我尝试过谷歌搜索,但找不到任何相关的东西,所以我在这里问 我的应用程序(.NET 4.0,C#,WinForms)有一个下拉列表,我使用这些值来确定在整个站点的RadGrids等上显示哪些数据。例如,在引用数据的每个内容页上,我使用以下内容: DropDownList ddList = ((DropDownList)Master.FindControl("xDropDownList")); if (ddList == null) return; /

我尝试过谷歌搜索,但找不到任何相关的东西,所以我在这里问

我的应用程序(.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);
这是一个巨大的拒绝吗?可以在客户端上更改此文本并将其发送回服务器吗?我很乐意将整个ddList值更改为“R”或“W”+“”+ddList.SelectedValue(例如,R_00001或W_00001)

真的,我应该通过下拉菜单来处理安全措施吗?我已经设置RoleManager来处理更大的安全措施(普通用户与管理员等),但是对于特定的项目(如00001项目),读或写访问基于该项目,而不是用户,因此有一个00001“读”项目和一个00001“写”项目可以分配给用户,其中可以有许多(即,一个用户在其组中可以有1个或多个项目,每个项目都可以按照数据库中该项目的读写值进行读写)。我是不是搞错了

有很多问题,对不起

tl;dr:


我应该使用ASP.NET DropDownList.SelectedItem.Text的结果作为任何服务器端调用的可靠参数,还是可以在客户端对其进行操作?

列表不是在客户端生成的,而是在其生成的服务器端生成的。充其量只有所选值来自客户端,即使是与列表不匹配的值也将是Ignored。此外,无论他们是否可以编辑该值,您都应该调用HttpUtility.HtmlEncode,因为您可能有HtmlTank you Darren中不允许的值。我知道它是在服务器端生成的,但我不知道如果用户在客户端编辑它会发生什么(使用浏览器中的开发人员工具、javascript或其他方式)它用这些值发回。那么你是说,如果用户更改了它们,但它们不匹配,服务器会忽略它们?正确,就像我说的,列表是在服务器端生成的,第一次和随后的发回都是这样,只有实际选择的值被发回,所以你应该没事。
 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