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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 基于权限显示web部件_Sharepoint - Fatal编程技术网

Sharepoint 基于权限显示web部件

Sharepoint 基于权限显示web部件,sharepoint,Sharepoint,因此,我从sharepoint 2007公告列表中获取数据,并将其显示在另一个网站上。我需要确保我创建的web部件不会显示给对我从中获取数据的站点没有权限的人。如果用户没有权限,如何禁用web部件 我在onload事件中尝试了这个。enabled=false,但没有成功。我不确定禁用Web部件是什么意思。如果当前用户没有查看公告列表的权限,则您的部件无法呈现任何标记。若要完全隐藏web部件,请将web部件的属性设置为true。我们采用这种方法,根据用户配置文件中是否存在某些属性来隐藏web部件

因此,我从sharepoint 2007公告列表中获取数据,并将其显示在另一个网站上。我需要确保我创建的web部件不会显示给对我从中获取数据的站点没有权限的人。如果用户没有权限,如何禁用web部件


我在onload事件中尝试了这个。enabled=false,但没有成功。

我不确定禁用Web部件是什么意思。如果当前用户没有查看公告列表的权限,则您的部件无法呈现任何标记。

若要完全隐藏web部件,请将web部件的属性设置为true。我们采用这种方法,根据用户配置文件中是否存在某些属性来隐藏web部件

隐藏的web部件仍在页面上,并参与页面生命周期,但用户看不到它。如果权限错误仍然存在问题,请尝试捕获特定异常,并将其用作是否隐藏部件的测试

当然有更优雅的方法来检查权限,但是这种方法应该是快速简单的

protected override void Render(HtmlTextWriter output) {
    if (i have permissions) {
      base.Render(output);
    }
}

为避免未经授权的访问例外情况,请确保检查用户在您访问任何网站、列表和数据的任何其他位置是否具有适当的权限。

在SharePoint 2013中。在其他版本中,相应地更新id和文本。 您可以使用以下简单的jQuery代码为没有权限的用户隐藏web部件:

$( "td:contains('There are no documents in this view.')" ).parentsUntil( ".ms-webpartzone-cell" ).hide();
例如,我在页面上有一个列表视图web部件。应用于列表的权限。如果用户没有权限,则web部件显示消息:

此视图中没有文档

现在,我在所有web部件的顶部放置了一个脚本编辑器web部件,并插入了以下脚本:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
       $(document).ready(function(){
            $( "td:contains('There are no documents in this view.')" ).parentsUntil( ".ms-webpartzone-cell" ).hide();
       });
</script>

我的意思是,我甚至不希望web部件出现。当前,如果他们的用户没有权限,则会抛出“权限被拒绝”错误,我无法在sharepoint网站的主页上显示该错误,我需要它完全不显示web部件,就像受众定位一样。然后,当用户没有查看公告列表的权限时,您会将“隐藏”属性设置为true。确定。当当前用户没有查看公告列表的权限时,将Web部件上的Hidden属性设置为true。Web部件的标题是否仍会显示在页面上?只是没有呈现内容?