禁用基于UserRole Razor页面的输入字段



我有一个包含50多个字段的表单。并非所有用户角色都可以访问所有这些字段。基于用户角色,我禁用了这样的字段。

<select id="DrpDwnFinalApprovalStatus" asp-for="ShipmentProfile.ApproverStatus" asp-items="@Model.Status" class="form-control form-control-sm" disabled="@(Model.UserRole != "UserRoleA"?true:false)">
<option value="">Please Select</option>
</select>

但现在要求已经改变了,比如,某些用户角色可以编辑某些部分在上面的例子中,我必须检查两个用户角色,比如如果它不是UserRoleA和UserRoleB,那么该字段将被禁用。除此之外,我还需要检查一些状态。服务器端和客户端是最好的方法。如果它的服务器端有任何示例代码可以实现这一点吗?

您必须始终在服务器上执行检查。客户端的东西很容易被绕过。人们可以很容易地使用浏览器开发工具来删除表单字段上禁用的属性,或者制作一个包含他们想要的任何内容的HTTPPost。

不确定您期望的是什么样的示例代码——在对属性进行任何更改之前,它应该是一个简单的if语句,用于检查当前用户的角色。

最新更新