Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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_Security_Authentication_Database Connection - Fatal编程技术网

如何将数据库的凭据传递给wcf服务?

如何将数据库的凭据传递给wcf服务?,wcf,security,authentication,database-connection,Wcf,Security,Authentication,Database Connection,我们有一个连接到oracle数据库的WCF服务。必须使用调用服务的用户的凭据连接到数据库 如何设置它,以便在客户端访问客户端凭据中设置的用户名和密码,以便在连接到数据库以获取服务调用的数据时将其添加到创建的连接字符串中 还是应该用其他方式来处理 如果有区别,我们将在oracle数据库中使用代理标识,因此所有用户将作为主用户连接,并且代理标识将设置为传递的凭据,以确保在代理用户的上下文中执行查询。设置要使用的服务。这样,它们将接受服务客户机的标识 设置完毕后,您可以按如下方式获取呼叫者的Windo

我们有一个连接到oracle数据库的WCF服务。必须使用调用服务的用户的凭据连接到数据库

如何设置它,以便在客户端访问客户端凭据中设置的用户名和密码,以便在连接到数据库以获取服务调用的数据时将其添加到创建的连接字符串中

还是应该用其他方式来处理

如果有区别,我们将在oracle数据库中使用代理标识,因此所有用户将作为主用户连接,并且代理标识将设置为传递的凭据,以确保在代理用户的上下文中执行查询。

设置要使用的服务。这样,它们将接受服务客户机的标识

设置完毕后,您可以按如下方式获取呼叫者的Windows标识:

WindowsIdentity callerWindowsIdentity = ServiceSecurityContext.Current.WindowsIdentity;

看看它是否对您有帮助。

谢谢,但我们没有使用windows身份验证,我们使用的是用户名/密码身份验证。您如何验证呼叫者?您正在使用CustomUsernamePasswordValidator类型吗?目前我们没有进行身份验证。我应该说我们想使用用户名密码验证。。。我们正在尝试调查我们的选项是什么…您仍然可以使用Windows身份验证。您的客户端可以在客户端凭据中传递用户名/密码,然后您可以指定服务行为以将这些凭据映射到Windows帐户。格式很糟糕,抱歉…请看我答案中的模拟链接。