禁用基于 UserRole Razor Pages 的输入字段

Posted

技术标签:

【中文标题】禁用基于 UserRole Razor Pages 的输入字段【英文标题】:Disable input fields based on UserRole Razor Pages 【发布时间】:2022-01-12 08:27:21 【问题描述】:

我有一个超过 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,则该字段被禁用。 除此之外,我还需要检查一些状态。哪个是最好的方法服务器端或客户端。 如果它的服务器端有任何示例代码来实现这一点?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于禁用基于 UserRole Razor Pages 的输入字段的主要内容,如果未能解决你的问题,请参考以下文章

关于 razor,.NET MVC 对 razor 的支持与 .NET razor pages 有啥区别,有啥叫做 .NET MVC razor pages 的东西吗?

Razor-Pages - HTML 标记

Razor Pages 不使用它的布局

无法部署 Razor Pages 网站

Razor Pages - 一对多关系

Razor Pages 在页面加载时设置当前日期