Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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
SharePoint托管应用程序2013:自定义列表/AllItems.aspx页面_Sharepoint_Sharepoint 2013_Sharepoint Online_Sharepoint Apps - Fatal编程技术网

SharePoint托管应用程序2013:自定义列表/AllItems.aspx页面

SharePoint托管应用程序2013:自定义列表/AllItems.aspx页面,sharepoint,sharepoint-2013,sharepoint-online,sharepoint-apps,Sharepoint,Sharepoint 2013,Sharepoint Online,Sharepoint Apps,我正在尝试在SharePoint托管的应用程序中实现权限级别。我已经创建了一个自定义的“权限”列表,在其中添加不同的用户及其角色 我已经创建了一个page List.aspx,在这里我将自定义列表“产品”显示为列表视图web部件。Page List.aspx根据“权限”列表检查用户的角色,页面可以显示或隐藏与此角色相关的内容。问题是,当用户尝试导航到“Lists/Products/Allitems.aspx”或“Lists/Permissions/Allitems.aspx”时,他可以看到列表项

我正在尝试在SharePoint托管的应用程序中实现权限级别。我已经创建了一个自定义的“权限”列表,在其中添加不同的用户及其角色

我已经创建了一个page List.aspx,在这里我将自定义列表“产品”显示为列表视图web部件。Page List.aspx根据“权限”列表检查用户的角色,页面可以显示或隐藏与此角色相关的内容。问题是,当用户尝试导航到“Lists/Products/Allitems.aspx”或“Lists/Permissions/Allitems.aspx”时,他可以看到列表项

所有代码检查都是在JavaScript中完成的,我知道存在安全风险,但这对我的用户来说是可行的。我只需要找到一种方法将自定义JavaScript代码注入Allitems.aspx,并检查用户是否有权查看它


这里的一切都是在App web上完成的,我在主机web上没有使用任何东西。

我找到了解决方法。基本上我所做的就是隐藏列表视图,不让直接访问。为此,请打开列表的Schema.xml,并替换“JSLink”:

clienttemplates.js

~site/Scripts/OverrideListView.js
现在,创建一个新文件Scripts/OverrideListView.js,并向其中添加以下代码:

document.write("<style>body {display:none; };</style>");
document.write(“body{display:none;};”;
现在请尝试直接访问列表/权限/Allitems.aspx。你会得到一个空白页

这就是如何将自定义JS代码插入列表视图的基本概念。您可以添加额外的代码来检查当前用户在站点级别上的权限,以及与此相关的权限,以取消隐藏此视图,甚至在当前用户没有正确的角色或权限时将其重定向到主页

<JSLink>~site/Scripts/OverrideListView.js</JSLink>
document.write("<style>body {display:none; };</style>");