【问题标题】:Have a webpart hide its self, if the user doesn't have proper permission如果用户没有适当的权限,让 web 部件隐藏自己
【发布时间】:2010-11-05 23:39:04
【问题描述】:

如果用户在 SharePoint 中创建 Web 部件页面,然后将我的自定义 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 部件中。

【问题讨论】:

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


    【解决方案1】:

    你会想要查看Audience Targeting

    基本上,受众定位允许您根据查看它的人的组来自定义页面,以便经理将转到“home.aspx”并查看包含一些统计信息的顶层结果 WebPart,但如果普通开发者登录同一页面,WebPart 不会出现。

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

    编辑

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

    【讨论】:

    • 请注意,受众群体仅适用于 MOSS,不适用于 WSS。
    【解决方案2】:

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

    【讨论】:

    • 外壳 (Chrome) 仍将被渲染,用户仍将看到 webpart 的某些方面。
    • 这是一个有效的观点,如果你显示 chrome。我假设您将 Chrome 类型设置为“无”。如果你这样做了,用户就不需要看到任何东西了。
    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 2021-02-24
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 2013-11-25
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多