Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 检查权限的最佳位置在哪里?_Wcf_Architecture - Fatal编程技术网

Wcf 检查权限的最佳位置在哪里?

Wcf 检查权限的最佳位置在哪里?,wcf,architecture,Wcf,Architecture,我的应用程序具有以下体系结构: Web服务层(wcf服务) 业务逻辑层 数据访问层 我应该在哪里检查许可?在Web服务或BL中?一般来说,我会在Web服务层这样做,因为安全性是一个高度关注的问题。这对于WCF特别好,因为安全设置可以使用配置更改而不是代码进行配置。因此,在WCFlayer建立安全模型非常容易。 DAL绝对不是检查安全的地方,因为它的级别太低。一个给定的web方法可能会调用许多DAL方法,而您可能会错过其中一个,或者一个DAL方法可以是允许的,也可以是不允许的,这取决于调用它的we

我的应用程序具有以下体系结构:

Web服务层(wcf服务)

业务逻辑层

数据访问层


我应该在哪里检查许可?在Web服务或BL中?

一般来说,我会在Web服务层这样做,因为安全性是一个高度关注的问题。这对于WCF特别好,因为安全设置可以使用配置更改而不是代码进行配置。因此,在WCFlayer建立安全模型非常容易。

DAL绝对不是检查安全的地方,因为它的级别太低。一个给定的web方法可能会调用许多DAL方法,而您可能会错过其中一个,或者一个DAL方法可以是允许的,也可以是不允许的,这取决于调用它的web方法。

作为另一个答案,我建议您检查服务层中的访问,但这当然取决于您的需要。在许多场景中,我构建了一些服务,其中只有一些客户端被允许访问服务,当然,WCF使用来自调用方或类似方的证书来检查这些服务

然后,客户机的用户还拥有一组凭证,允许访问数据的特定部分(在BLL中检查)或服务的特定方法/端点(由WCF或BLL根据用户凭证和授权逻辑的性质检查)

但我同意DAL不应该参与其中