如果用户在 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/