我试图在SharePoint托管的应用程序中实现权限级别。我已经创建了一个自定义列表“权限”,其中我添加了不同的用户和他们的角色。
我已经创建了一个页面List.aspx,在该页面中,我将我的自定义列表“产品”显示为列表视图web部件。页面List.aspx根据“权限”列表检查用户的角色,页面可以显示或隐藏有关此角色的内容。问题是,当用户试图导航到“list /Products/Allitems.aspx”或“list/ problem /allitems.aspx”时,他可以看到列表项。
所有的代码检查都是用JavaScript进行的,我知道存在安全风险,但这对我的用户来说是有效的。我只需要找到一种将自定义JavaScript代码注入Allitems.aspx的方法,并检查用户是否拥有查看它的权限。
这里的一切都是在App上完成的,而我在主机上没有使用任何东西。
发布于 2014-10-31 12:08:43
我已经找到解决办法了。基本上,我所做的就是对直接访问隐藏列表视图。为此,打开列表的Schema.xml并替换"JSLink":
从…
<JSLink>clienttemplates.js</JSLink>至
<JSLink>~site/Scripts/OverrideListView.js</JSLink>现在,创建一个新文件Scripts/OverrideListView.js并向其添加以下代码:
document.write("<style>body {display:none; };</style>");现在尝试直接访问Lists/Permissions/Allitems.aspx。你会得到一个空白页。
这基本上是知道如何将自定义JS代码插入到列表视图中。您可以添加其他代码,以检查当前用户在站点级别上的权限,并相应地取消此视图的隐藏,如果用户没有正确的角色或权限,甚至可以将其重定向到主页。
https://stackoverflow.com/questions/26383654
复制相似问题