这是我们的场景:
我们在解决方案 S1 中有一个 MVC3 应用程序“MVC3ABC”,它使用表单身份验证进行保护(目前用户详细信息仅在 web.config 中用于早期开发,但它们很快就会在 SQL Server 数据库中)。
MVC 控制器 C1 调用 WCF 服务 W1,该服务在解决方案 S1 中的单独 ASP.NET Web 项目下具有 .svc 文件。在这种情况下,WCF 服务不需要知道登录的特定用户,只需知道它是经过身份验证的用户访问。
MVC View V1 托管一个 Silverlight4 应用程序 SLV1,它调用 WCF 服务 W2,该服务在不同的解决方案 S2 中的一个单独的 AST.NET Web 项目下具有 .svc 文件。在这种情况下,WCF 服务确实需要知道登录的特定用户,因为它会根据登录到 MVC 站点的用户从不同的数据库中获取数据。
所以本质上,我们需要的是,已经通过 MVC 应用程序进行身份验证的用户可以从 MVC 站点访问这两个 WCF 服务,对于 W2 服务,我们需要知道它是哪个用户。对 MVC 站点之外的 WCF 服务的任何访问也需要进行身份验证或不应该工作(不允许匿名访问 WCF 服务)。
有解决这个问题的标准方法吗?有谁知道我可以在其中看到这种事情的任何示例项目?
一些额外的细节 - 我们使用 Visual Studio 2012 RC、.NET 4.5 和 IIS7。
谢谢