我可以使用调用者的信用来打数据库的 WCF 调用吗?

Posted

技术标签:

【中文标题】我可以使用调用者的信用来打数据库的 WCF 调用吗?【英文标题】:Can I have a WCF call that hits the DB use the creds of the caller? 【发布时间】:2010-10-13 16:10:39 【问题描述】:

我已经阅读了很多关于模拟的内容,并且在我的配置文件中尝试了很多标签。我已经在我的方法上尝试了[OperationBehavior(Impersonation = ImpersonationOption.Required)] 访问数据库。

这些都不起作用。根据我的配置设置方式,我会收到各种各样的错误消息。

谁能为我列出需要什么 C# 和配置(即绑定、行为、端点设置)才能使以下场景正常工作:

我通过 WCFTestClient 调用 WCF 方法。 WCF 方法托管在 IIS 中(在数据库中不是有效用户的 IIS 用户下运行)。 该方法查看调用者是谁,并将这些凭据传递给对数据库的调用 对数据库的调用在不同的项目(类库)中并使用 Linq-to-sql 数据库执行该操作,就好像 WCF 服务的调用者已经完成了一样。

如果有人澄清了这个谜团,请与我分享详细信息。

谢谢!

(注意:我正在 Visual Studio 2010 Ultimate 中开发并托管在 IIS 7 中)

【问题讨论】:

【参考方案1】:

有一个关于如何设置impersonation in WCF here 的精彩演练。您可能缺少servicebehavior 设置?

【讨论】:

以上是关于我可以使用调用者的信用来打数据库的 WCF 调用吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 WCF 中获取调用者的主机名

查找 WCF 服务调用者的 Active Directory 域用户名

更改 WCF 服务以与 .NET Framework 和 .NET Core 调用者兼容

WCF 错误:调用者未通过服务的身份验证

WCF

如何验证和授权每个 WCF 调用?