我正在尝试根据代码背后的用户权限删除某些Web应用程序按钮。
我试图触发javascript onload来删除指定的DOM元素,但该页面会先加载,然后再修改DOM。我希望在页面加载之前先修改DOM。
答案 0 :(得分:1)
您不希望依靠JavaScript来确保安全性是正确的,因为任何精通JavaScript的人都可以绕过它。
在您的cshtml页面中使用Razor语法甚至都不会放在第一位。文档是here,但实际上您只是这样做:
@if ([check if user has permission]) {
<button>Do Something</button>
}
该语句在您的服务器上评估。因此,如果用户没有权限,该按钮将永远不会放在页面的第一位。
如果按钮具有JavaScript,可以通过执行相同的操作将其隐藏:
@if ([check if user has permission]) {
<script>
function doSomething() {
//do something
}
</script>
}
警告:如果您在已经存在的<script>
标记内执行此操作,则需要将条件JavaScript放在<text>
标记内,以便Razor引擎不会尝试解释该标记。 JavaScript:
<script>
@if (true) {
<text>
function doSomething() {
//do something
}
</text>
}
</script>