如果用户在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部件中。
答案 0 :(得分:3)
您将要查看Audience Targeting。
基本上,受众群体定位允许您根据查看该用户的人群自定义页面,以便管理员转到“home.aspx”并查看包含一些统计信息的顶级结果WebPart,但如果是常规开发人员登录到同一页面,WebPart将不会出现。
你应该小心混淆Audiences and Permissions。受众群体定位不会更改相关用户的权限。
修改强>
感谢Kirk指出,受众群体定位仅适用于MOSS,而不适用于WSS。
答案 1 :(得分:0)
您绝对可以在自定义WebPart的Render()
方法中进行权限检查。如果用户没有权限,则不要渲染任何内容。