找不到“System.IdentityModel.Tokens.UserNameSecurityToken”令牌类型的令牌身份验证器。

2023-12-02

我正在尝试让第三方 Java 客户端与我编写的 WCF 服务进行通信。

收到消息时出现以下异常:

无法找到令牌验证器 “System.IdentityModel.Tokens.UserNameSecurityToken”令牌类型。代币 根据当前的安全性,该类型不能被接受 设置。

这是我的配置:

Binding

<customBinding>
    <binding name="TestSecureBinding">
        <security authenticationMode="MutualCertificate" />
        <textMessageEncoding messageVersion="Soap11WSAddressing10" />
        <httpsTransport requireClientCertificate="true" maxReceivedMessageSize="5242880" />
    </binding>
</customBinding>

行为:

  <serviceBehaviors>
    <behavior name="TestCertificateBehavior">
      <serviceCredentials>
        <clientCertificate>
          <certificate storeLocation="LocalMachine" x509FindType="FindBySubjectName" findValue="Test 01"/>
          <authentication certificateValidationMode="PeerTrust" trustedStoreLocation="LocalMachine" revocationMode="NoCheck"/>
        </clientCertificate>
        <serviceCertificate storeLocation="LocalMachine" x509FindType="FindBySubjectName" findValue="Test 01"/>
      </serviceCredentials>
    </behavior>
  </serviceBehaviors>

端点:

  <service name="TestService"
           behaviorConfiguration="TestCertificateBehavior">
    <endpoint
      name="TestEndpoint"
      address="https://localhost:443"
      contract="TestServiceContract"
      binding="customBinding"
      bindingConfiguration="TestSecureBinding">
    </endpoint>
    <host>
      <baseAddresses>
        <add baseAddress="https://localhost:443" />
      </baseAddresses>
    </host>

  </service>

有谁知道是什么原因造成的?


这是因为在某处使用了引用证书的错误方式,如果我没记错的话,您可以直接引用证书或使用密钥标识符 - 无论如何,为了超越它,您应该能够将allowSerializedSigningTokenOnReply标记添加到您的安全性中标记您的客户端绑定配置并将其设置为 true。

that should为你超越它 - 记住,把这个客户端

抱歉,我找不到参考资料 - 我记得在某个地方读过它,但现在找不到了! :( ****编辑这里是**** -http://webservices20.blogspot.co.uk/2010/10/wcf-cannot-find-token-authenticator.html

<customBinding>  
<binding name="TestSecureBinding"> 
        <security allowSerializedSigningTokenOnReply="true" /> 
        etc
    </binding> 
<customBinding> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

找不到“System.IdentityModel.Tokens.UserNameSecurityToken”令牌类型的令牌身份验证器。 的相关文章

  • 数据库连接模拟失败

    我有一个 SL4 应用程序 它使用 WCF 与后端 SQL Server 2008 数据库进行通信 由于调用的存储过程需要数据库权限 其中一项 WCF 服务需要使用专用系统帐户连接到数据库 我尝试在服务代码中使用模拟来实现解决方案 例如 i
  • 通过 IoC 容器实例化 WCF 服务

    是否可以使 WCF 运行时通过 IoC 容器而不是通过其通常的进程来实例化服务 此外 考虑到容器的类型生活方式配置与服务的 InstanceContextBehavior 之间存在潜在冲突 这种方法会是一个糟糕的主意吗 我知道我可能完全问错
  • WCF:Per-Call 和 Per-Session 服务...需要说服 Per-Call 是值得的

    我们目前正在审查 WCF 服务设计 困扰我的一件事是 Per Call 和 Per Session 服务之间的决定 我相信我理解两者背后的概念 但我并没有真正看到按呼叫服务的优势 我知道使用 Per Call 服务的动机是 WCF 服务仅在
  • msmq - 触发器 - 独立可执行调用不起作用

    过去几天我一直在尝试使用 msmq 触发器来调用 exe 文件 它永远不会被调用 这些是我遵循的步骤 创建了一个提及队列路径并检查了查看的触发器 启用 选中 创建了一个不带任何条件的规则 以便每当获得新消息时都会触发触发器 并选择提到独立可
  • WCF 每个端点有不同的身份验证方法

    我有 WCF 服务 我的服务有 2 个端点 每个端点都有不同的联系人 该服务使用自定义用户名身份验证 在 的 customUserNamePasswordValidatorType 属性中定义 问题是两个端点将使用相同的身份验证方法 无论如
  • 如何使用 MVVM-Light 和 WCF RIA 服务创建可混合项目

    我想使用 MVVM 模式构建我的业务应用程序 我选择 MVVM Light 因为它符合我的需求 在我见过的有关 MVVM Light 的每个示例中 没有人使用 WCF RIA 经典的 MIX10 示例在同一项目中使用服务 而 WCF RIA
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • 如何添加重试以调用 Web 服务?

    我有一个应用程序调用使用 wsHttpBinding 的 Web 服务 我需要在连接超时等情况下对 Web 服务调用实现某种重试功能 执行此操作的最佳方法是什么 我已经阅读过有关 WS ReliableMessaging 的内容 但这不是
  • 如何从 Azure webjob 到 Azure webapp 进行通信?

    我正在运行 Azure Web 作业和 Azure Web 应用程序 该作业定期运行 并且 Web 应用程序需要作业的结果 我如何在那里得到结果 我尝试过使用 WCFnetNamedPipeBinding但由于 Azure webapps
  • 如何自定义 WCF 在序列化合约方法参数时采用的流程?

    我想设计一个人为的场景 但它有坚实的实际基础 想象一个集合类型 COuter 它是另一个集合类型 CInner 的实例的包装器 两者都实现了 IList 不用管 T 此外 COuter 实例隐藏在某个对象图内 其根 我们将其称为 R 是从
  • WCF 和数据契约上的接口

    使用 svcutil 创建 WCF 代理时 是否还可以包含数据协定继承的接口 例如 public class SomeType ISometype public string Name get set public interface IS
  • 如何在 REST WCF 服务中接受任意 JSON 对象?

    我想实现这样的服务方法 OperationContract WebInvoke RequestFormat WebMessageFormat Json ResponseFormat WebMessageFormat Json public
  • 关闭WCF代理

    当涉及到 WCF 代理时 我始终遵循 try Close catch Abort 的指导 我现在面临一个代码库 它在 MVC 控制器中创建代理并让它们超出范围 我认为我们需要编辑代码库以使用 try Close catch Abort 但存
  • WCF 是否始终需要我的主机具有管理员权限?

    我正在跟进this http msdn microsoft com en us library ms730935 aspx教程 似乎要在我的应用程序中实现 WCF 它需要以管理员权限运行 我想使用远程处理only同一台机器上的进程之间进行通
  • 自定义 WCF DataContractSerializer

    是否可以用我自己的序列化程序替换 Windows Communication Foundation 中的 dataContractSerializer 如果可能的话 我怎样才能实现这一目标 是的 您可以提供自己的序列化器实现 默认情况下 W
  • 我应该何时何地使用 WCF

    我浏览了几个在线教程 其中涵盖了 WCF 的优点 如何构建服务 客户端等 不过 我想了解一点整体情况 问题 gt 什么样的应用程序或应用程序中的哪些功能要求我使用 WCF 功能 一个具体的例子应该可以更好地帮助我 有几种情况 需要 WCF
  • WCF 服务中的“即发即忘”

    我在 Azure 上有很多 WCF REST 服务 在某些 WCF 服务中 我向外部服务调用 Http 请求 例如发送电子邮件 短信 对非关键第三方服务的 http 请求 我不希望这阻碍我对客户电话的响应 需要一些关于在这种情况下使用的模式
  • 如何为本机启用现有 WCF 服务的 JSONP?

    我有一个现有的服务 如下方法 AspNetCompatibilityRequirements RequirementsMode AspNetCompatibilityRequirementsMode Allowed ServiceBehav
  • WCF 缓慢的 ServiceHost.Open() 调用

    这是一个与此类似的问题 WCF 服务的 Win32Exception ServiceHost Open https stackoverflow com questions 1542242 win32exception servicehost
  • 在一个 Windows 服务中的单个 TCP 端口上托管多个 WCF 服务

    下面是我的主机 Windows 服务的 app config 文件片段

随机推荐