1

我们有一个依赖于发布功能的新闻系统。它基本上是开箱即用的新闻,有一些小的变化。该页面包含一个页面内容区域。我会给出一些屏幕截图来帮助说明我的观点。

一、页面内容区:

页面内容区 http://img216.imageshack.us/img216/460/pagecontentxm2.png

当您在内容区域内单击时,会添加一个工具栏。如果要将图像添加到内容中,请单击突出显示的按钮(这是用户尝试执行的操作):

图片按钮 http://img218.imageshack.us/img218/9786/pagecontentwithtoolbarwc9.png

单击图像按钮后,将出现一个对话框。当用户单击浏览 按钮时,他会收到403 错误

图片属性 http://img218.imageshack.us/img218/3779/imagedialogxl1.png

正如我在主题中所说,用户具有完全控制权限。

我深入研究了 IIS 日志,发现此页面抛出 403:/ _layouts/ AssetPortalBrowser.aspx

当用户单击浏览按钮时,应该让他们浏览到此文档库: /Information/News/PublishingImages

如果您会在对话框(第三张图片)中注意到浏览路径是空白的。如果用户粘贴到图像库的路径,则不会发生错误。

有人知道如何解决这个 403 错误吗?它只发生在这个用户身上,并且最近才开始。

4

10 回答 10

1

我认为 AssetPortalBrowser.aspx 正在调用对象模型以尝试获取数据以填写文件列表。如果是这种情况,并且页面没有为文件库获取正确的值以获取图像,则页面将尝试为项目列表使用默认值。如果该用户没有默认位置的权限,则可能会导致 403。

这都是猜测,但 Fiddler 没有显示 AssetPortalBrowser.aspx 请求任何其他页面资产。

我直接在浏览器窗口中键入 /_layouts/AssetPortalBrowser.aspx 的简短实验始终默认为文档库。该库与在打开页面之前立即浏览的站点没有任何关系,因此它可能将默认 URL 存储在某个地方,并且可能是完全不同的位置。

最好的办法是尝试追踪最近对该用户权限的任何更改(即减少)。

于 2009-01-27T20:07:18.530 回答
1

我最近写了一篇关于这个主题的博客

您需要一组特定的权限才能使用 AssetPortalBrowser 进行浏览。棘手的是,这些权利必须在站点级别授予,仅将这些权利授予图书馆是不够的。第二个问题是 AssetPortalBrowser 会记住您上次浏览的 url。因此,您当前添加权限的站点可能不是生成 403 错误的站点。

http://autoexe.blogspot.com/2009/03/assetportalbrowser-403-access-denied.html

于 2009-03-17T09:46:03.290 回答
0

可能会有所帮助。还可以使用 fiddler 来查看失败时的请求到底是什么。

于 2009-01-27T16:51:00.050 回答
0

尝试进一步缩小范围:

于 2009-01-27T16:52:25.943 回答
0

403 的子状态代码是什么?这通常显示为 IIS 日志中 403 之后的数字。

下表应有助于确定此 403 的根本原因:

None  Access is denied. 
1 Execute access is denied.
2 Read access is denied.
3 Write access is denied.
4 SSL is required to view this resource.
5 SSL 128 is required to view this resource.
6 IP address of the client has been rejected.
7 SSL client certificate is required.
8 DNS name of the client is rejected.
9 Too many clients are trying to connect to the Web server.
10 Web server is configured to deny Execute access.
11 Password has been changed.
12 Client certificate is denied access by the server certificate mapper.
13 Client certificate has been revoked on the Web server.
14 Directory listing is denied on the Web server.
15 Client access licenses have exceeded limits on the Web server.
16 Client certificate is ill-formed or is not trusted by the Web server.
17 Client certificate has expired or is not yet valid.
18 Cannot execute requested URL in the current application pool.
19 Cannot execute CGIs for the client in this application pool.
20 Passport logon failed.

(来源:HTTP 403.x-Forbidden (IIS 6.0)

于 2009-01-27T16:59:04.947 回答
0

如果它是一个系统库,那么是的,它可能应该继承。系统库的描述中通常有类似“这个库是由发布功能创建的”的内容。

至少,您可以写下现有的权限,然后继承。如果这不能解决问题,你可以把旧的放回去——没有伤害,没有犯规。

于 2009-01-28T16:36:30.030 回答
0

具体来说,不是继承使它工作 - 它对库具有读取访问权限。如果它没有 inerit 但您的用户仍然可以访问它,那么该库不是问题。

于 2009-01-28T16:37:34.600 回答
0

我正是这个问题。在四处挖掘并在组之间移动人员以查看哪些组受到影响以及哪些组没有受到影响之后,我发现您至少需要对位于集合根目录的“站点集合文档”库具有“读取”权限。为什么这个库很特别并且没有继承权限让我难以理解......

作为站点管理员,从主门户页面:站点设置 -> 站点库和列表 -> 自定义“站点集合文档”。让这个库从它的父级继承权限,然后突然就可以工作了。当你在那里时,还要检查“网站收集文件”。

于 2009-01-28T15:33:07.177 回答
0

伤不起。还要检查“网站集图像”库,因为您的原始错误提到了“PublishingImages”库。

于 2009-01-28T16:14:48.827 回答
0

进一步的想法:我设法通过将我的测试用户添加到 Portal Owners 组中来诊断这个问题,然后检查 Browse 是否在摘要链接 webpart 中工作(确实如此)。如果同样的测试对您有用,则意味着门户所有者可以访问普通用户无法访问的内容。如果是这种情况,我会检查根级别的每个库(与上述相同的技术),寻找常规使用无法访问的库。

此外,在摘要链接 webpart 中并添加新链接时,有两个浏览按钮:一个转到正在讨论的页面,一个转到 PortalImagePicker.aspx。这第二个按钮对您的用户有用吗?还是都给403 Forbidden?

于 2009-01-28T16:20:03.557 回答