【问题标题】:How to pass credentials for database to wcf service?如何将数据库凭据传递给 wcf 服务?
【发布时间】:2011-04-13 09:11:54
【问题描述】:

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

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

或者有其他方法可以解决这个问题吗?

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

【问题讨论】:

    标签: wcf security authentication database-connection


    【解决方案1】:

    设置您的服务以使用Impersonation。这样他们就可以使用服务客户端的身份。

    设置完成后,您可以像这样获取调用者的 Windows 身份:

    WindowsIdentity callerWindowsIdentity = ServiceSecurityContext.Current.WindowsIdentity;
    

    Check out this blog post 看看能不能帮到你。

    【讨论】:

    • 谢谢,但我们没有使用 Windows 身份验证,我们使用的是用户名/密码验证
    • 您如何验证来电者的身份?您使用的是 customUserNamePasswordValidatorType 吗?
    • 目前我们没有进行身份验证。我应该说我们要使用用户名密码身份验证...我们正在尝试调查我们的选项是什么...
    • 您仍然可以使用 Windows 身份验证。您的客户端可以在客户端凭据中传递用户名/密码,然后您可以指定服务行为以将这些凭据映射到 Windows 帐户。
    • 格式化很糟糕,对不起......请参阅我的回答中的模拟链接。
    猜你喜欢
    • 1970-01-01
    • 2015-11-15
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2012-08-19
    相关资源
    最近更新 更多