Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何:基于用户角色ASP.Net MVC 3的必需验证器_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 2 Validation - Fatal编程技术网

如何:基于用户角色ASP.Net MVC 3的必需验证器

如何:基于用户角色ASP.Net MVC 3的必需验证器,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-2-validation,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 2 Validation,我有一个表单,其中有一个字段“Real Cost”,我想自定义它的外观,并根据用户角色验证它 更清楚的是,客户希望在表单或详细信息页面中显示其字段,并使其对“高级销售、经理”角色中的用户可编辑,而不是其他角色,因此,有谁能告诉我最好的方法吗 我是否应该基于角色中的用户编写自定义的必需验证,如果是,请提供正确的实现 有些人可能会告诉我为此创建自定义模型,但我认为这会很麻烦,而且角色将是动态的,因此它不是预定义的角色集 我希望我已经足够清楚了安全性肯定应该发生在模型或控制器中,但决不能发生在视图中—

我有一个表单,其中有一个字段“Real Cost”,我想自定义它的外观,并根据用户角色验证它

更清楚的是,客户希望在表单或详细信息页面中显示其字段,并使其对“高级销售、经理”角色中的用户可编辑,而不是其他角色,因此,有谁能告诉我最好的方法吗

我是否应该基于角色中的用户编写自定义的必需验证,如果是,请提供正确的实现

有些人可能会告诉我为此创建自定义模型,但我认为这会很麻烦,而且角色将是动态的,因此它不是预定义的角色集


我希望我已经足够清楚了

安全性肯定应该发生在模型或控制器中,但决不能发生在视图中——这远远超出了视图的关注范围。这是为了显示控制器提供给它的数据。

要扩展@Wyatt,您需要在模型级别做出所有这些决策,然后用所有答案填充“视图模型”,然后可以在视图中使用这些答案来改善用户体验


在此表单的ViewModel中,设置属性IsRealCostEditable,该属性将由服务/模型层通过检查用户角色来设置。现在,您可以轻松地调整该字段的UI。

您可以创建重复页面,并且一个页面可以包含视图模型,该模型不会更改页面中的任何内容。。。您可以使用编辑按钮重定向到可编辑页面。 使用身份验证保护该页面。因此,在编辑角色之前,将要求您作为角色进行身份验证

否则。。您的ViewModel无法做出决策,它位于服务层