WCF服务需要架构建议

时间:2015-01-29 19:28:13

标签: wcf connection-string claims-based-identity multiple-databases wcf-authentication

我目前正在开发后端基础架构,我可能需要一些建议。

首先,这是当前的全球架构:

  • 我在IIS中托管了WCF服务
  • 我在SQL Server上托管了多个数据库。每个客户一个ClientData数据库,一个全局MasterDatabase
  • MasterDatabase包含与连接字符串关联的凭据映射。该数据库允许我根据提供的凭据使用适当的ClientData数据库(通过实体框架)。
  • 我使用基本身份验证通过SSL。
  • 凭据验证在我的checkAccessCore()子类中的重写方法ServiceAuthorizationManager中完成。在该方法中,我获取MasterDatabase,确保凭据正确(密码使用Bcrypt保存在DB中)并检索连接字符串。
  • 检索连接字符串后,我创建了一个继承自CustomIdentity的类GenericIdentity的实例。然后,我可以使用该实例设置Thread.CurrentPrincipal属性。
  • 每个WCF服务实现都从CustomPrincipal检索连接字符串,以便从相应的ClientData数据库中获取数据。

我的问题/想法如下:

  1. 如果我决定在我的WCF服务中使用并发,我将如何处理,因为CheckAccessCore是WCF扩展的一种方法,迫使并发操作按顺序运行?

    http://support.microsoft.com/kb/KbView/2907010

    这意味着我的所有通话都会在checkAccessCore级别加入队列并被阻止。

    覆盖checkAccessCore是我发现在调用堆栈的早期拦截调用以验证用户凭据的最佳方式。

  2. 我应该使用不同的方式来传输除自定义标识之外的客户端连接字符串吗?它安全吗?

  3. 如果我使用并发,我想将覆盖CustomPrincipal中设置的身份。如果是的话,如何处理?

0 个答案:

没有答案