gpt4 book ai didi

c# - 具有角色的 WCF PrincipalPermission,为子方法配置

转载 作者:太空宇宙 更新时间:2023-11-03 20:31:55 24 4
gpt4 key购买 nike

我想让它尽可能简单,所以我没有发布任何代码,因为它可能只会让事情变得困惑。

我已经使用 WCF 基于角色的授权在我的应用程序中实现了安全性。

假设我在公开的接口(interface)上有 4 个方法

  • 获取个人信息
  • 删除个人
  • 更新人员
  • 获取姓氏和名字

我附上了

[PrincipalPermission(SecurityAction.Demand,Role="POWERUSER")]

到前 3 个,然后是

[PrincipalPermission(SecurityAction.Demand,Role="GENERALUSER")]

到最后一个。

这工作正常,并阻止“GENERALUSER”访问前 3 个方法。

但是,GetSurnameAndForename 方法在内部调用了 GetPerson 方法,但失败了。我明白它失败的原因,但是是否有更好的方法允许 GetSurnameAndForename 在没有 POWERUSER 角色的情况下调用 GetPerson?

我能想到的唯一方法是在 IsInRole 方法中添加额外检查以检查 CallStack 以查看此调用是来自内部方法还是外部调用。此解决方案有效,但不是很优雅。

最佳答案

是的,有一个非常简单的解决方案。将 GetPerson 提供的逻辑包装到私有(private)方法中,并从 GetPersonGetSurnameAndForename 调用该新方法。

关于c# - 具有角色的 WCF PrincipalPermission,为子方法配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7133234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com