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 由于Web部件,网站成员/访问者访问被拒绝的错误页面_Sharepoint_Permissions_Web Parts_Access Denied - Fatal编程技术网

Sharepoint 由于Web部件,网站成员/访问者访问被拒绝的错误页面

Sharepoint 由于Web部件,网站成员/访问者访问被拒绝的错误页面,sharepoint,permissions,web-parts,access-denied,Sharepoint,Permissions,Web Parts,Access Denied,我开发了自定义网页部件。我可以将其添加到页面,网站所有者可以毫无问题地查看页面 但是,网站访问者/用户会被重定向到拒绝访问错误页面。当然,我必须做一些普通用户不允许做的事情 但让我困扰的是,当我在Web部件构造函数甚至变量声明中放置断点时,它不会被击中!(如果我试图以有限的权限查看页面)。但是在我的浏览器中,我得到了拒绝访问页面。然而,如果我关闭了那个网页,我马上就可以访问那个网页,一切都好了 这里有什么问题?我希望我能用调试器捕捉异常,看看哪个语句是有罪的,但似乎webpart不执行任何代码,

我开发了自定义网页部件。我可以将其添加到页面,网站所有者可以毫无问题地查看页面

但是,网站访问者/用户会被重定向到拒绝访问错误页面。当然,我必须做一些普通用户不允许做的事情

但让我困扰的是,当我在Web部件构造函数甚至变量声明中放置断点时,它不会被击中!(如果我试图以有限的权限查看页面)。但是在我的浏览器中,我得到了拒绝访问页面。然而,如果我关闭了那个网页,我马上就可以访问那个网页,一切都好了

这里有什么问题?我希望我能用调试器捕捉异常,看看哪个语句是有罪的,但似乎webpart不执行任何代码,我得到了那个异常


编辑:抱歉,调试器现在会命中这些断点。不知道发生了什么变化,因为符号已加载。

Sharepoint站点的信任级别是什么?您可能希望暂时给予Fulltrust,以查看是否存在任何访问问题

如果是,那么您可能面临代码访问安全性(CAS)问题。我的第一个直觉是,您的程序集没有必要的特权来为普通用户正确运行。 您可以使用Web部件的manifest.xml中的自定义CAS条目对其进行配置,例如,如果您正在调用外部资源,则可能需要配置System.New.WebPermission并定义允许访问的url。你可以在网站上找到更多信息

你的网页部件也是做什么的?如果您试图访问普通用户无权访问的资源(例如,某个站点中的列表),则必须使用该方法,以便您拥有必要的权限(注意在该方法中创建新的站点实例,以便正确填充上下文)。

找到了解决方案

事实证明,我想通过尝试访问某个用户组来确定该用户是否属于该组。因为如果用户没有这样的权限,这是不可能的,所以它会在消息中抛出某种内部异常

“无法计算表达式,因为” 代码已优化或为本机代码 框架位于调用堆栈的顶部。“


无论如何,我现在学会了通过
SPUser.Groups(SPGroupCollection)
循环检查我们是否有匹配的组,而不是枚举组负责人并查看他是否在其中。

您需要向访问者组授予权限(更新个人Web部件)。但是,不建议这样做。如果需要,可以创建单独的权限级别,并将其与访问者组关联

干杯