因为面对这个问题,我这几天真的很累。我正在构建一个使用 WCF 服务的 XBAP 应用程序(WPF 浏览器应用程序)。这个应用程序需要:
- 用户可以使用他们的用户名和密码(存储在我的数据库中)登录
- 用户无需安装任何 X509 证书(*.pfx 或 *.cert...)
- WCF 服务必须使用 basicHttpBinding(以支持其他 silverlight 应用程序)
我尝试了很多方法,但它们不符合这些要求。你有什么解决办法吗?提前致谢。
因为面对这个问题,我这几天真的很累。我正在构建一个使用 WCF 服务的 XBAP 应用程序(WPF 浏览器应用程序)。这个应用程序需要:
我尝试了很多方法,但它们不符合这些要求。你有什么解决办法吗?提前致谢。
basicHttpBinding - 顾名思义 - 它提供的内容非常基本。在安全性方面尤其重要。
据我所知,你无法实现你想要做的事情。BasicHttpBinding 仅支持使用 Windows 凭据(不适用于具有自定义用户的 Internet)或数字证书的传输安全性(使用 https 协议),或通过数字证书(您明确排除 - 为什么??)的消息安全性。
检查此 CodeProject 文章8 步骤以在 WCF BasicHttpBinding 或 Google 上启用 Windows 身份验证以获取“basicHttpBinding 安全性” - 您会发现很多文章,但可能没有真正满足您要求的解决方案 - 您无法使用 basicHttpBinding 执行此操作。
更新:默认情况下,在 WCF 中,您应该在每次调用时传递调用者的凭据 - 但不是作为服务方法的参数,而是通过在服务代理生成的客户端上指定客户端凭据。就像是:
myService.ClientCredentials.UserName.UserName = "username";
myService.ClientCredentials.UserName.Password = "p@ssw0rd";