如何在选择标记(HTML)中的选项中加密或隐藏“值”-MVC 5

时间:2018-08-30 12:26:31

标签: javascript html encryption asp.net-mvc-5

我正在将用户列表从控制器发送到View。

我的动作:

public ActionResult Users()
    {
        ViewBag.UserList = new SelectList(db.Users.ToList(), "Id", "UserName");
        return View();
    }

我在下拉列表中填充以下内容:

 @Html.DropDownList("Users", (SelectList)ViewBag.UserList, "Select Users", new { @class = "required form-control" })

当我在Chrome中打开开发者工具时,我会看到这样的Option值:

<select class="required form-control" id="User_UserRole" name="Users" type="hidden">
<option value="">Select User</option>
<option value="3aeca037-99d1-4cb2-a08c-6a5a3427f35c">admin</option>
<option value="3df4ebc6-f7ee-44b9-9f0b-2083e5921aac">superadmin</option>
</select>

如何加密或隐藏此选项值
“ value =” 3aeca037-99d1-4cb2-a08c-6a5a3427f35c“
在选择标签中,因此使用安全。请帮忙!

2 个答案:

答案 0 :(得分:0)

浏览器中发生的任何事情都不能被认为是安全的或隐藏的。

根本没有想要的东西。

任何对安全性敏感的操作都需要在服务器上进行。如果要让用户在“ admin”和“ superadmin”之间进行选择,只需在下拉菜单中为他们提供这些选项,然后在他们提交表单时,使用服务器端代码来决定要执行的操作。< / p>

如果您不希望他们看到一个或多个选项,请不要为您不想显示的项目生成<option>标签。

此外,请确保您不允许基于用户输入的服务器端无效选项。例如,如果只希望允许“ admin”,请确保如果他们手动创建“ superadmin”选项并提交,则在服务器端拒绝此操作。

从外界传入的任何东西都不能被信任。

答案 1 :(得分:-1)

这样做可以隐藏选项值

<option value="k" style="display:none;">kumar</option>