如果用户没有适当的权限,请让webpart隐藏自己

时间:2009-06-25 21:04:12

标签: c# visual-studio-2008 sharepoint web-parts

如果用户在SharePoint中创建Web部件页面,然后将其中一个自定义Web部件添加到其中,我希望根据特定用户权限完全隐藏Web部件。

例如,我有一个报告网络部分,有些用户可以访问报告,有些用户无法访问,我甚至不希望某些用户知道报告存在。

我有一个自定义安全API,用于确定是允许还是拒绝安全性, 我想说:

    protected override void OnInit(EventArgs e) {
        bool allowed = PermissionServices.IsAllowed("Reports");
        if (!allowed) {
             this.Hide(); 
             // Where 'this' is the web part
        }
        base.OnInit(e);
    }

我不控制页面代码,因此它必须位于Web部件中。

2 个答案:

答案 0 :(得分:3)

您将要查看Audience Targeting

基本上,受众群体定位允许您根据查看该用户的人群自定义页面,以便管理员转到“home.aspx”并查看包含一些统计信息的顶级结果WebPart,但如果是常规开发人员登录到同一页面,WebPart将不会出现。

你应该小心混淆Audiences and Permissions。受众群体定位不会更改相关用户的权限。

修改

感谢Kirk指出,受众群体定位仅适用于MOSS,而不适用于WSS。

答案 1 :(得分:0)

您绝对可以在自定义WebPart的Render()方法中进行权限检查。如果用户没有权限,则不要渲染任何内容。