首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'System.IdentityModel.Tokens.X509SecurityToken‘:EncryptedKey子句没有使用所需的加密令牌EncryptedKey包装。

'System.IdentityModel.Tokens.X509SecurityToken‘:EncryptedKey子句没有使用所需的加密令牌EncryptedKey包装。
EN

Stack Overflow用户
提问于 2013-02-07 12:20:37
回答 1查看 2.3K关注 0票数 0

我已经用SAML实现创建了一个Wcf服务。我使用的联邦绑定为同样。从我的客户端应用程序中,当我在同一台机器上运行客户机和主机服务时,我能够轻松地访问我的WCF web服务上承载的服务。我使用证书进行身份验证(SAML实现)。

关于您的信息,我在客户端有自定义模块,它充当身份提供者。主机服务只是具有一些使用wsfederationbinding.公开的功能。

现在的问题是,当我在不同的系统上运行我的WCF服务主机和在不同的系统上运行客户端应用程序(身份提供者为使用者)时,我将得到以下错误消息

代码语言:javascript
运行
复制
  MessageSecurityException: The EncryptedKey clause was not wrapped with the required encryption token 'System.IdentityModel.Tokens.X509SecurityToken'.

注意:我觉得客户端和主机服务之间存在某种不匹配的证书内部。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 14:30:48

我已经解决了上面的问题,其实造成上述错误的根本原因是证书错配。我在一个SAML论坛上读到了关于SAML证书身份验证过程的文章。

  1. 令牌在客户端使用公共证书进行加密。
  2. 在服务器端(在我的例子中是Webservice主机),接收到的令牌使用证书的私钥解密。

因此,在我的例子中,客户端的证书与服务器端的证书不同。

决议:

只需从服务器端导出证书(在我的例子中是Webservice主机),并在客户端导入相同的证书。

注:双方(客户端和服务器端)均有2种证书,客户端证书和服务器证书。因此,实际上,当客户机想要访问主机web服务(动态)时,就像下载应用程序一样,我们需要在服务端创建两个证书,并在激活客户端app.this时将这些证书部署到客户端。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14750983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档