MS CRM 2011 Field Security Profile
CRM一直以来对于权限的控制都是使用security role,但security role是对entity读写等操作的权限控制。如果你要对entity上的某一个field进行权限的控制,就要使用field security profile了。注意:security profile只能对custom field进行控制。
假如在客户entity中,我们创建了一个field Bank Account。这里存储这用户的银行账户信息。我们想要设置,只有部分CRM用户有权限来读取该信息。也就是说,即便有的用户有权限读取客户entity,但是他没有权限来读取客户的Bank Account信息。注意,在创建Bank Account field的时候,要设置Field Security Enabled。
然后我们将该field放置到form中,可以看到该Bank Account旁边画着一把钥匙,表明该field为security field。
保存并publish customizations后,我们打开一个客户的表单。由于我使用的是system administrator用户,所以我拥有对Bank Account的读与写的权限。我为一个客户填写进他的Bank Account信息。
然后如果以另一个CRM用户登录的话,打开同一个客户,会看到什么呢?
可以看到,虽然有权限打开该客户,但是Bank Account的信息都被隐藏起来。我们再试着用Advanced Find来查看该客户的Bank Account。
Bank Account的信息是空的。所以如果没有赋予CRM用户权限来读取Bank Account field的话,即便该用户有权限读取该客户,但他也没有权限读取Account Bank field。那么如何赋予用户读写Bank Account 的权限呢? 这就要用到 Field Security Profile了。重新以system administrator的身份登录CRM。在System –> Administration –> Field Security Prifiles 中创建一个新的profile,命名它为Account Manager。
在Members/Users中添加你想要赋予权限的用户:
在Common/Field Permissions中,设置用户对security fields的权限。默认为Read、Update、Create都为No。我们将Read 改为Yes,Update和Create都为No。这样用户就对Bank Account信息拥有读取的权限,但不具有创建或更改的权限。
这次如果你再以Daisy Cabell的身份登录CRM,你会发现你可以看到Bank Account的信息了,并且该信息为只读的。
最后总结一下,如果想要在某些entity中保存一些保密的信息,可以创建enable security的field,并创建新的Field Security Profile来赋予用户对该field的权限。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构