检查权限的最佳位置在哪里?
Posted
技术标签:
【中文标题】检查权限的最佳位置在哪里?【英文标题】:Where is the best place to check permissions? 【发布时间】:2012-01-31 05:11:21 【问题描述】:我的应用程序具有以下架构:
Web 服务层(wcf 服务)
业务逻辑层
数据访问层
我应该在哪里检查权限?在 Web 服务中还是在 BL 中?
【问题讨论】:
【参考方案1】:作为另一个答案,我建议检查服务层中的访问权限,但这当然取决于您的需求。在许多情况下,我已经构建了服务,其中只有一些客户端允许访问该服务 - 当然 - WCF 使用来自调用者的证书或类似的证书对其进行检查。
然后,客户端的用户还有一组凭据,允许访问数据的特定部分(在 BLL 中检查)或服务的特定方法/端点,由 WCF 或 BLL 检查,具体取决于用户凭证和授权逻辑的性质。
但我同意 DAL 不应参与。
【讨论】:
【参考方案2】:一般来说,我会在 Web 服务层做,因为安全性是一个高级别的问题。这对 WCF 特别有用,因为可以使用配置更改而不是代码来配置安全设置。因此,在 WCFlayer 上对安全性进行建模非常容易。 DAL 绝对不是检查安全性的地方,因为它的级别太低。给定的 Web 方法可能会调用许多 DAL 方法,而您可能会错过一个,或者 DAL 方法可以被允许或禁止,具体取决于调用它的 Web 方法。
【讨论】:
以上是关于检查权限的最佳位置在哪里?的主要内容,如果未能解决你的问题,请参考以下文章