c# - 如果用户没有适当的权限,让 Web 部件隐藏自身

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

如果用户在 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 部件中。

最佳答案

您将想要查看Audience Targeting .

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

您应该小心混淆 Audiences and Permissions 。受众群体定位不会更改所涉及用户的权限。

编辑

感谢 Kirk 指出受众群体定位仅在 MOSS 中有效,在 WSS 中无效。

关于c# - 如果用户没有适当的权限,让 Web 部件隐藏自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1046262/

相关文章:

c# - ASP.NET 中的自动完成 jquery,来自代码隐藏

Javascript:如何调用外部网站的函数?

c# - 如果使用 ConfigureAwait(false),async/await 是否仍会死锁?

c# - 我怎样才能用 .txt 文件填充我的组合框,但只有他们的名字没有路径?

visual-studio-2008 - 在Visual Studio的哪里设置$ OutDir之类的标志?

c# - 运行 Visual Studio 单元测试与运行 ReSharper 单元测试,有什么区别?

c# - 具有前导数字的枚举值是否有命名约定?

c# - .Net 属性功能是在编译时还是在运行时或两者都使用?

c# - Visual Studio : Multiple post-build commands?

c# - 自定义列表中的 SharePoint 自定义上下文菜单出现在文件夹上,而不仅仅是文件