Project Server PSI的简单调用方式:权限控制
相信大家都见过PWA的权限级别,非常细,如下图,只是一部分:
那么在自己二次开发时候如何快速判断当前用户是否拥有某个权限或者一些权限呢:
PWA默认情况下有3种权限判断,首先是全局权限判断,如上图示意,其次是对象级别的权限,比如在项目或者任务上有什么类型的权限,比如察看明细或者打开页面等;第三是资源类的权限判断,我理解成安全类别或者安全组。如下图:
代码片段如下:
public override bool CheckPagePermission() { if (PjContext.PSI.SecurityWebService.CheckUserGlobalPermission(PSSecurityGlobalPermission.ViewResourcePlan)) { this._ProjectDeleted = false; if (base.PjContext.PSI.PWAWebService.ProjectCheckProjectExistsInWorkingStore(this._ProjUid)) { Return PjContext.PSI.SecurityWebService.CheckUserObjectPermission(this._ProjUid, PSSecurityObjectType.Project, PSSecurityCategoryPermission.ViewProjectDetailsInProjectCenter); } this._ProjectDeleted = true; return false; } return false; } //上面代码首先检查全局权限是否有查看企业资源权限,其次检查当前登录用户在指定存在的项目上是否有查看项目明细的权限,否则不能做进一步操作 |
如果是多重权限判断,一般上面的方法都支持数组参数,返回的也是标识数组:
Guid[] globalPermissionUids = new Guid[] { PSSecurityGlobalPermission.NewTaskAssignment }; bool[] flagArray = PjContext.PSI.SecurityWebService.CheckUserGlobalPermissions(globalPermissionUids); this.fAllowAddTask = true; this.fAllowAddAssn = flagArray[0]; if (!this.fAllowAddTask && !this.fAllowAddAssn) { LeavePage();//Say sorry! } //以上代码检查当前用户是否有创建任务的权限,否则导向错误页面:
public static void LeavePage(Page page) { string url; if ((SiteMap.CurrentNode == null) || (SiteMap.CurrentNode.ParentNode == null)) { url = SiteMap.RootNode.Url; } else { url = SiteMap.CurrentNode.ParentNode.Url; } SPUtility.Redirect(url, SPRedirectFlags.UseSource, HttpContext.Current); } |
__EOF__

本文链接:https://www.cnblogs.com/pccai/archive/2011/06/19/2084865.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2007-06-19 AD用户帐户属性对照表