【问题标题】:WPF & WCF Security - Username and password = STSWPF 和 WCF 安全性 - 用户名和密码 = STS
【发布时间】:2011-08-25 03:45:45
【问题描述】:

我即将使用 WPF 启动一个项目,该项目使用 Web 服务来获取信息等。

需要用户名和密码才能对您进行身份验证并获取属于您的数据。

我希望我的 WPF 应用程序存储用户名和密码。但我不想存储它。所以我在想。如果在我第一次登录后它会在 WCF 端生成一个证书并将其提供给可用于每次调用的 WPF 应用程序,那就太酷了。

我想的可能吗?我想解决的另一个问题是如何避免有人复制和粘贴证书?

更新

基于@zamd 的建议。这就是我想解决的问题。

  1. Webservice 使用 WCF Web Api
  2. 网站有表单认证
  3. 网站使用经过令牌服务验证的用户名和密码登录
  4. Webservice 可以验证 Token Service 提供的用户令牌

我发现这篇非常有用的博客文章 http://weblogs.asp.net/cibrax/archive/2011/02/04/authenticating-clients-in-the-new-wcf-http-stack.aspx 但我想使用表单身份验证来获取 SAML 令牌

【问题讨论】:

    标签: wpf wcf wcf-security


    【解决方案1】:

    您应该研究基于声明的安全性和 SAML 令牌。

    在登录时,您的应用程序应转到您的服务或“安全服务”(也称为“安全令牌服务”)并获取 SAML 令牌以换取用户名/密码对。 SAML 令牌通常对接收方是安全的,并且可以安全地存储在客户端,直到它们过期。

    每次需要调用 WCF 服务时,都可以使用此 SAML 令牌进行丰富的身份验证和授权。

    【讨论】:

      【解决方案2】:

      您对证书库身份验证的理解不正确。证书用于建立 SSL 连接,用于使用非对称加密对数据进行加密并对用户进行身份验证,但要根据证书对用户进行身份验证,证书应安装在用户的系统上,而不是由 WCF 服务提供。这需要设置 PKI 基础设施。 您可以查看的其他选项是使用

      1. 在 ASP.Net 兼容模式下运行 WCF 服务的 ASP.Net 表单身份验证。在这种情况下,一旦经过身份验证,只有 auth cookie 会在之后通过。
      2. 看看这个问题有什么其他方法User/Pass Authentication using RESTful WCF & Windows Forms

      【讨论】:

        【解决方案3】:

        如果您必须使用用户名/密码组合,那么您可以让 Windows 使用 Windows 凭据管理器在 Windows 7、Windows Server 2008(可能还有 Vista)下为您存储它。您需要陷入 p/invoke 调用( http://pinvoke.net/default.aspx/advapi32/CredRead.htmlhttp://pinvoke.net/default.aspx/advapi32/CredWrite.html)。

        我遇到的唯一问题是它不能在 Windows Server 2003 上运行,即使文档说它是受支持的操作系统。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-25
          • 2012-04-18
          • 1970-01-01
          • 1970-01-01
          • 2011-09-28
          • 2011-08-31
          • 1970-01-01
          • 2013-06-05
          相关资源
          最近更新 更多