如何将数据库凭据传递给wcf服务?
问题描述:
我们有一个连接到oracle数据库的WCF服务。与数据库的连接必须使用调用该服务的用户的凭据完成。如何将数据库凭据传递给wcf服务?
如何设置它以便我可以访问在客户端的客户端凭据中设置的用户名和密码,以便我可以将这些添加到我想要连接到数据库时获得的连接字符串中以获取服务电话的数据?
或者是否有其他方式应该处理?
如果它有所作为,我们将在oracle数据库中使用代理身份,因此所有用户都将作为主用户进行连接,并将代理身份设置为传递的凭据以确保查询在代理用户的上下文。
答
设置您的服务使用Impersonation。这样他们将采取服务客户端的身份。
一旦这个设置,你可以得到呼叫方的Windows标识是这样的:
WindowsIdentity callerWindowsIdentity = ServiceSecurityContext.Current.WindowsIdentity;
Check out this blog post,看看它是否帮助你的。
谢谢,但我们没有使用Windows身份验证,我们正在使用用户名/密码验证 – 2011-04-13 13:38:31
您如何验证呼叫者?你在使用customUserNamePasswordValidatorType吗? – BrandonZeider 2011-04-13 13:43:46
目前我们没有进行身份验证。我应该说我们想使用用户名密码认证...我们正在努力调查我们的选择是什么... – 2011-04-13 13:47:28