我正在将用户列表从控制器发送到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“
在选择标签中,因此使用安全。请帮忙!
答案 0 :(得分:0)
浏览器中发生的任何事情都不能被认为是安全的或隐藏的。
根本没有想要的东西。
任何对安全性敏感的操作都需要在服务器上进行。如果要让用户在“ admin”和“ superadmin”之间进行选择,只需在下拉菜单中为他们提供这些选项,然后在他们提交表单时,使用服务器端代码来决定要执行的操作。< / p>
如果您不希望他们看到一个或多个选项,请不要为您不想显示的项目生成<option>
标签。
此外,请确保您不允许基于用户输入的服务器端无效选项。例如,如果只希望允许“ admin”,请确保如果他们手动创建“ superadmin”选项并提交,则在服务器端拒绝此操作。
从外界传入的任何东西都不能被信任。
答案 1 :(得分:-1)
这样做可以隐藏选项值
<option value="k" style="display:none;">kumar</option>